c# - 在 ASP.NET c# 中设置 sqldatasource select 语句时防止 SQL 注入(inject)

标签 c# asp.net sql sql-server code-injection

我有一个关于在我的应用程序中防止 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/

相关文章:

c# - 维护安全的 MySQL 连接

c# - .NET Core 2.1 : AddHsts() and AddHttpsRedirection() not defined

ios - 通过 IOS 从 ASP.NET Web API 获取 bool 值或字符串

javascript - 在渲染任何 View (或部分 View )之前如何执行操作?

php - 显示我关注的主题的帖子

c# - WPF 错误 40 BindingExpression 路径错误 : property not found on 'object'

c# - 查看 MVC 2 中无法正常工作的数据

php - Yii,CactiveForm 在数据库中保存多个表

mysql - SQL 查询错误信息

c# - 理解反射