1

我试图使此语句免受插入特殊字符的影响。我将如何重新格式化查询以处理此问题,例如具有值“Women's”的变量类型?但是,我知道参数化查询是可行的方法;现在这不是一个选择。

var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
4

2 回答 2

1

您最好的资源将是 OWASP(查看SQL 注入预防备忘单)。我不得不重申,最好的办法是按以下顺序尝试解决方案:

  1. 准备好的报表
  2. 存储过程
  3. 转义用户提供的输入

如果您完全准备好转义 SQL Server 查询,您可以参考这篇 MSDN 文章,特别是转义输入部分。如果您可以通过实施白名单进一步验证用户输入,那就更好了!

于 2012-10-09T22:50:14.033 回答
0

但是,我知道参数化查询是可行的方法;现在这不是一个选择。

为什么它“现在不是一个选择”?

让您的整个数据受到损害或破坏“现在是一种选择”吗?您愿意发布您的网址吗?

如果您不对查询进行参数化,则无法保证防止 SQL 注入的万无一失的方法。

于 2012-10-08T13:54:12.383 回答