我试图使此语句免受插入特殊字符的影响。我将如何重新格式化查询以处理此问题,例如具有值“Women's”的变量类型?但是,我知道参数化查询是可行的方法;现在这不是一个选择。
var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
我试图使此语句免受插入特殊字符的影响。我将如何重新格式化查询以处理此问题,例如具有值“Women's”的变量类型?但是,我知道参数化查询是可行的方法;现在这不是一个选择。
var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
您最好的资源将是 OWASP(查看SQL 注入预防备忘单)。我不得不重申,最好的办法是按以下顺序尝试解决方案:
如果您完全准备好转义 SQL Server 查询,您可以参考这篇 MSDN 文章,特别是转义输入部分。如果您可以通过实施白名单进一步验证用户输入,那就更好了!
但是,我知道参数化查询是可行的方法;现在这不是一个选择。
为什么它“现在不是一个选择”?
让您的整个数据受到损害或破坏“现在是一种选择”吗?您愿意发布您的网址吗?
如果您不对查询进行参数化,则无法保证防止 SQL 注入的万无一失的方法。