1
A
回答
1
我相信你使用sqlparameters避免此问题。
5
ADO.NET中最简单的工具是使用SQL参数来查看所有可变的查询值。这也具有效率优势。即使您的代码中包含明确的sql,但完全没有使用存储过程或函数,您仍然可以通过使用相同的查询字符串,同时仅改变参数的值而获得这些优点。
当你真的需要动态地构建你的sql命令文本而不能使用sql参数时,可能会有时间(例如搜索引擎)。这很不幸,因为保护自己免受sql注入(其他各种消毒和关键字黑名单)的其他方式更为复杂,并且需要您体贴周到,聪明。尽量避免这种情况!
1
这是一个“ADO.NET”问题吗?如果是的话,那么SQLParameters就是你的朋友。 Scott Gu关于这个问题的文章很陈旧,但仍然非常有用,并且有很好的建议。
如果你不使用ADO.NET那么大多数奥姆斯会防止你的攻击。例如,LLBLGen生成参数化查询。像Linq to SQL一样。我猜他们都这样做,虽然检查你的味道ORM :)
0
对我来说,最简单的方法是使用Linq2Sql来查询数据库。这篇文章没有提到,因为它不存在。你也可以使用实体框架。它提供了更高的功率和更高的学习曲线。还有很多其他的ORM,大多数(可能都是,但我不知道)会防止SQL注入。另一件好事是ORM负责从结果中创建一个对象。
相关问题
- 1. SQL Server 2008和.NET Framework 4
- 2. 依赖注入和.NET
- 3. Doctrine和SQL注入
- 4. LINQ和SQL注入
- 5. Hibernate和SQL注入
- 6. SqlCeResultSet和SQL注入
- 7. EntitySQL和SQL注入
- 8. SQL注入和Codeigniter
- 9. ORM和SQL注入
- 10. Linq到SQL和SQL注入
- 11. 数据集和SQL Server CE .NET 4的
- 12. Erlang和SQL注入攻击
- 13. ScriptResource.axd和.Net 4
- 14. Oracle数据库和.NET(C#) - 如何防止SQL注入
- 15. SQL注入与EFCTP和.net mvc的可能性
- 16. SQL注入攻击和django
- 17. Like子句和sql注入
- 18. Gnome的libgda和SQL注入
- 19. Doctrine2 FindOneBy和SQL注入
- 20. SqlDataSource控件和SQL注入
- 21. SQL注入和Postgres“CREATE SCHEMA”
- 22. LINQ to Entities和SQL注入
- 23. 参数和SQL注入asp.net
- 24. Linq到sql和sql注入攻击
- 25. 依赖注入和.NET属性
- 26. MySQL的“插入”和SQL注入
- 27. Sql注入查询
- 28. .NET MVC 4注册后自动登录
- 29. SQL注入指示和解决方案
- 30. SQL注入
即使动态构建查询,我也能够使用参数。这很值得。 – 2010-10-08 14:13:53
关于效率的好处 – 2010-10-08 14:15:15