如何保护 WinForms 应用程序免受直接 SQL 的影响
我有一些用 C# 编写的 WinForms 应用程序(开发一些简单应用程序的框架)。 我的框架后来将用于开发win form应用程序。其他开发人员通常是初学者,有时不使用参数 - 他们在代码中直接编写 SQL。因此,首先我需要以某种方式在 C# 中的框架基类中进行保护。 我有一些基础类,它执行所有 SQL 操作,所以我想我可以在执行查询之前在这里进行一些检查... 我如何在 C# 中获得针对直接 SQL 的保护......?一些例子会非常有用。
i have some WinForms app (Framework to develop some simple apps), written in C#.
My framework later would be used to develop win forms applications. Other developers they are beginers often and sometimes do not use Parameters - they write direct SQL in code. So first i need somehow to do protection in my framework base classes in C#.
I have some basse class, which performs all the SQL action so i think i can put here some checking, before executing queries...
How i can get protection in C# against direct SQL..? Some example would be very usefull.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的同事正在编写他们的 SQL 语句,那么除了在所有查询中使用参数手动防止 SQL 注入之外,没有任何有保证/现实的方法可以防止 SQL 注入。即使在框架中提供一种机制也不是一个完美的解决方案,因为您仍然可以通过简单地忽略它(或忘记使用它)来绕过它。
不要滚动自己的框架,而是考虑使用 ORM,例如 NHibernate,它会为您解决这个问题(并且大多数时候您不必自己编写 SQL 语句)。
If your colleagues are writing out their SQL statements, there's no guaranteed/realistic way you can protect against SQL injection except to protect against it manually using parameters in all queries. Even providing a mechanism in your framework isn't a perfect solution since you can still get around it by simply ignoring it (or forgetting to use it).
Instead of rolling your own framework, consider using an ORM such as NHibernate, which takes care of this issue for you (and you don't have to write SQL statements yourself most of the time).