我有一些用 C# 编写的 WinForms 应用程序(用于开发一些简单应用程序的框架)。 我的框架后来将用于开发 win 表单应用程序。其他开发人员,他们通常是初学者,有时不使用参数 - 他们直接在代码中编写 SQL。所以首先我需要以某种方式在我的 C# 框架基类中进行保护。 我有一些基础类,它执行所有的 SQL 操作,所以我想我可以在执行查询之前在这里进行一些检查...... 我如何在 C# 中获得针对直接 SQL 的保护......?一些例子会非常有用。
最佳答案
如果您的同事正在编写他们的 SQL 语句,除了在所有查询中使用参数手动防止 SQL 注入(inject)外,没有任何保证/现实的方法可以防止 SQL 注入(inject)。即使在您的框架中提供一种机制也不是完美的解决方案,因为您仍然可以通过简单地忽略它(或忘记使用它)来绕过它。
与其推出自己的框架,不如考虑使用 ORM,例如 NHibernate ,它会为您处理这个问题(并且您不必在大多数时候自己编写 SQL 语句)。
关于c# - 如何保护 WinForms 应用程序免受直接 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382358/