我的字段是自由格式文本,只允许任何数字/符号的组合。验证这些以防止SQL注入的最佳方法是什么?我可以简单地替换刻度线吗?有没有可以插入使用的方法?
答案 0 :(得分:8)
只需使用参数化查询!在这里查看这篇文章:http://www.functionx.com/aspnet/sqlserver/parameterized.htm
答案 1 :(得分:1)
这里列出了各种方法: How To: Protect From SQL Injection in ASP.NET
报价:
对策包括使用可接受字符列表来约束输入,使用参数化SQL进行数据访问,以及使用在数据库中具有受限权限的最低权限帐户。建议使用带参数化SQL的存储过程,因为SQL参数是类型安全的。类型安全的SQL参数也可以与动态SQL一起使用。在无法使用参数化SQL的情况下,请考虑使用字符转义技术。
验证控件可以提供帮助,尽管它们运行在服务器端,而不是客户端。 ASP.NET确实内置了一些保护,但我不会单独依赖它。