これが注射を正しく妨げていることを確認するために再確認したいと思います。
ASP .NET 3.5でGridView(ずっと前に他の誰かによって書かれた)を使用する古いコードがあります。
.aspxページ(GridViewはこのデータソースを使用します):
<asp:SqlDataSource ID="sdsUserTables" runat="server"
ConnectionString="<%$ ConnectionStrings:Main %>"
DeleteCommand="DELETE FROM [MyTable] WHERE [tableID] = @tableID">
<DeleteParameters>
<asp:Parameter Name="tableid" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
これにより、tableIdへのインジェクションが防止されますか?
背後にあるコードはこれを持っています:
protected void sdsUserTables_Deleting(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@tableId"].Value = myTableId;
}