我想仔细检查以确保这可以正确防止注射。
我有在 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;
}