如果我允许用户键入文本框,然后对我的数据库执行搜索,则可能会发生sql注入。我可以使用正则表达式,这是我的第一个想法。但我有一个更好的主意。为什么不看他们输入的是否有任何SQL关键字。我使用SQL Server数据库,在ASP.NET程序中使用C#,我认为微软会提供一个简单的解决方案,我正在谈论。最好我能找到的是这篇文章:检查C#中的SQL关键字#
Is it a programmatic way to get SQL keywords (reserved words)
这可能是什么病最终会做,但我的问题是,我还是得打出来的关键字的完整列表,有一百个左右。当然,我现在可以完成而不是搜索并询问这个问题。但没有一个更简单的方法?现在我要去:
1创建一个HashSet 2中的所有关键字添加到HashSet的(CMON)对HashSet的 3验证用户输入
很想见步骤2将变得更加容易,任何有关SQL注入的其他建议还赞赏
我想补充我的两分钱,EXCEPT,我没有变更权利,你会采取支票?如果银行关门,我希望能把你从哈维省存到银行。考虑到上面的每个大写字母都是一个SQL关键字,我不认为这是一个好方法...... – Sparky 2013-05-13 02:36:11
一个好的方法是编写一个SQL存储过程从文本框中获取文本并执行查询...搜索SQL注入,你会发现为什么创建一个黑名单的话不是一个好方法 – Sparky 2013-05-13 02:37:31
... iam使用存储过程...不需要仍然检查你的说法吗? – dwarf 2013-05-13 02:39:21