在 Google 中输入这四个单词,竟然得到 16 个含有 SQL 注入漏洞的答案!

搜索引擎是常用的信息检索系统,用户通常使用这类工具进行网络搜索,以获取想要的信息或答案。然而,如果搜索引擎给出的答案有错呢?

近日,一名开发者出于好奇在 Google 中输入关键词 php mysql email register 并进行搜索,谷歌返回了教程、操作指南、代码段等。看似一切都很正常,但是这些结果中竟然有一大部分含有错误的 DB statement,类似于:

// Don't do this! 
mysqli_query("SELECT * FROM user WHERE id = '". $_POST["user'] ."'");

该开发者对搜索结果进行了分析总结,将错误的 SQL 语句分为以下四类:

  1. SQL 查询中的所有参数均被转义;
  2. 仅在绝对必要的情况下对输入数据进行转义;
  3. 作者尝试进行部分转义,但存在漏洞;
  4. 没有任何转义逻辑。

该开发者表示,在发现一个搜索结果中存在至少一处有问题的语句后即转到下一个搜索结果,但是在全部 30 个搜索结果中发现了更多问题。

在 Google 中输入这四个单词,竟然得到 16 个含有 SQL 注入漏洞的答案!_第1张图片
在 Google 中输入这四个单词,竟然得到 16 个含有 SQL 注入漏洞的答案!_第2张图片
开发者整理的 30 条搜索结果

对此,这名开发者表示大部分 Google 搜索结果质量不高,甚至某些搜索结果是通过 SEO 优化才出现在搜索结果列表前列的。

这篇文章在 reddit 和 Hack News 上引发了大量讨论。reddit 网友 DevilSauron 表示:

这的确是编程或计算机科学领域中的现实情况。互联网遍布糟糕甚至可怕的教程、blogspam(博客垃圾)以及以广告为导向的 UI。不幸的是,搜索结果的第一页往往充斥着这类信息。

对于我而言,通过互联网寻找真正的专家创造的高质量内容变得越来越难,避免掉入糟糕教程陷阱的最安全方式是学习著名的书籍和大学课程。

搜索结果质量不高并不是什么新问题,但程序员应该格外注意,避免陷入低质量的教程或信息。当然,如果搜索引擎能够改善搜索结果质量就更好了。

参考链接:

你可能感兴趣的:(搜索引擎sql注入)