SQL 注射仍然是一种威胁吗?

Are SQL injections still a threat?

我一直在想 SQL 注入是否仍然是日常正常网站的潜在威胁,参数化 SQL。 (ASP.NET - '@0').

如果它仍然是威胁,破解者将如何覆盖或绕过这些参数?

根据 OWASP,它仍然是 2013 年的头号威胁(在 ASP.NET 出现很久之后):https://www.owasp.org/index.php/Top_10_2013-A1-Injection

参数化 SQL 并不能消除对 SQL 注入的担忧。我曾在一家公司工作,以前的开发人员创建了将字符串作为参数的存储过程,创建了一些包含该字符串的动态 SQL 并执行了它。他们声称它是安全的,因为它是参数化的,但我能够证明我可以将 SQL 代码传递到存储过程并执行它。

此外,因为您使用支持参数的语言而声称您不会受到 SQL 注入,并不意味着您每次都在使用参数。某人只需一次失误就可以将一些代码注入您的数据库。

是的,SQL 注入仍然是一种威胁。这些类型的东西总是会发现新的漏洞。

以下是注射仍然被视为威胁的一些原因。

  • 攻击简单,别人需要多台电脑攻击,只需要一台电脑即可。
  • 糟糕的编程,糟糕的编程会导致一些简单的漏洞。您必须使您的数据库尽可能安全,以使攻击者更难找到漏洞。
  • 信任用户输入,有时在没有任何验证的情况下如此信任用户输入真的会出错。

这些只是一小部分。不过请记住,如果您要使用 SQL 数据库。在让 public 使用它之前,请确保您考虑了项目中的漏洞。