我有一个关于在我的应用程序中防止 SQL 注入(inject)的快速问题。
我的 Web 应用程序的两个不同功能使用文本框,用户可以使用这些文本框从 MSSQL 数据库中搜索项目。此信息显示在 GridView 中。
我使用这种方法创建查询:
sqldatasource.SelectCommand = "SELECT x from x where this_id LIKE '%" + txtbox.Text + "%' ORDER BY x ASC";
显然,像这样获取用户输入并将其直接输入到查询中将打开基本的 SQL 注入(inject)。请有人解释一下我如何对其进行参数化以防止在我的应用程序中进行 SQL 注入(inject)?
提前致谢
最佳答案
sqldatasource.SelectCommand = @"SELECT x from x where this_id LIKE @inText ORDER BY x ASC";
cmd.Parameters.AddWithValue("@inText", "%" + txtbox.Text + "%");
请注意,如果您使用通配符启动 LIKE
,您将会很痛苦。一张大 table 会伤心,慢慢走。
关于c# - 在 ASP.NET c# 中设置 sqldatasource select 语句时防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461063/