sql 注入和跨站点脚本仍然存在吗?

Is sql injection and cross-site scripting still a thing?

在查找有关Web攻击的一些资料时,sql注入和跨站脚本总是在table上。我无法想象这种在互联网上可以找到很多关于如何防止它的信息的老式网络攻击仍然在最常用的网络攻击的前 10 名中?对此有什么解释吗?

数量和质量是两个不同的野兽。 "A lot of information" 并不意味着有用的信息。相反,存在许多相互矛盾、开放式和模棱两可的建议。

例如,直到今天 OWASP 列表 "Escaping All User-Supplied Input" as a Primary(sic!) defense. Which, frankly, a nonsense

另一个例子是一个有着几十年历史的迷信,听起来像 "escaping prevents SQL injections"。

鉴于大量此类误导性或开放式建议,例如我们 "always validate the user input"(没有任何提示 特定 验证的意思)初级开发人员得到非常迷茫,打针进去。

我来讲故事。

我妈妈曾经和一群志愿者一起去当地的大学校园帮助学生登记投票(在美国,人们可以在 18 岁时投票,但默认情况下他们不会登记,他们必须填写表格)。她和她的小组会在四合院里设立一个 table 并提供表格,并指导学生填写并邮寄。

经过多年的努力,小组中的一位女士说,"We've been coming onto campus to help these kids register for TEN YEARS! When are they going to be able to do it on their own?"

我妈他们看着她缓缓说道,"There is a new set of students turning 18 years old every year."

防御SQL注入和跨站脚本也是如此。每年都有新的程序员进入这个行业。

事实上,研究表明软件开发人员的数量每五年翻一番,这意味着在任何给定时间,我认为 50% 的软件开发人员 "junior developers" 经验不足五年.当这些人成为高级开发人员时,又有同样多的年轻开发人员在他们之后进入该行业。

他们都需要接受培训以了解 SQL 注入和跨站点脚本防御,然后才能将他们的代码放到实时服务器上。

一次一个。

每年。

SQL 只要有软件开发人员,注入和跨站点脚本就会继续存在。


我还可以参考 SQLi Hall-of-Shame,该网页引用了有关利用 SQL 注入漏洞实施数据泄露的新闻报道。似乎每个月都有多个这样的故事,而这些只是成为新闻的闯入事件。这无疑是冰山一角。