我试图通过插入特殊字符使这个语句安全。如何重新格式化查询以处理此问题,例如具有值“Women's”的变量类型?我知道参数化查询是可行的方法;现在不是一个选择。
var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
答案 0 :(得分:1)
这里你最好的资源是OWASP(查看SQL Injection Prevention备忘单)。我不得不重申,您最好的选择是按以下顺序尝试解决方案:
如果您完全设置了对SQL Server的转义查询,可以参考This MSDN Article,特别是转义输入部分。如果您可以通过实施White List进一步验证用户输入,那就更好了!
答案 1 :(得分:0)
我知道参数化查询是可行的方法;那是 现在不是一个选择。
为什么“现在不是一个选择”?
您的整个数据是否已被妥协或销毁“现在是一个选项”?您是否愿意发布您的网址?
如果不对查询进行参数化,则无法保证防止SQL注入的万无一失的方法。