【问题标题】:Oracle Database and .NET (C#) - How to prevent SQL InjectionsOracle 数据库和 .NET (C#) - 如何防止 SQL 注入
【发布时间】:2013-04-18 00:17:56
【问题描述】:

我将在 asp.net 页面中使用一个选择,即:

string name=TexBox1.Text;
string pas=TextBox2.Text;
string c="select * from users where name='"+name+"' and password ='"+pas+"'";

有什么方法可以防止 sql 注入。

【问题讨论】:

标签: asp.net sql oracle security sql-injection


【解决方案1】:

首先,您必须验证代码中的输入数据,然后像参数一样使用它。 因为如果发生未处理的异常并且您返回诸如“连接字符串”之类的敏感数据,那么您将提供有用的信息,例如“列”和“表”名称,这是危险的。 其次,添加“数据访问层”来处理不在“代码隐藏”中的代码。您可以使用“存储过程”并从代码中调用它们,使用这种方式可以隐藏编程逻辑的查询,只将参数传递给存储过程,他完成这项工作,你只在出现异常的情况下返回错误发生。

这种预防措施是小型应用程序的基础,但存在许多其他方法来避免 SQL 注入。

【讨论】:

  • 我正在处理重要数据,所以我将使用散列或其他强大的方法,谢谢你的想法,对不起,我耽误了你的时间
  • 哈希仅适用于密码,如果发生任何错误,您将返回敏感数据,如表和列名,这就是 SQL 注入。如果您没有时间避免 sql 注入,我建议您验证输入,希望对您有所帮助;-)
猜你喜欢
  • 2020-09-08
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2016-08-04
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多