SQL注入的常见例子是否被误导?

时间:2012-04-08 07:31:05

标签: php sql security mysqli sql-injection

当然,SQL注入是Web应用程序最严重的安全问题,但我认为,许多博客和教程都夸大了不切实际的例子(或者说我错了)。常见的例子是输入

的值
; DELETE FROM ...

这仅仅是基于SQL基础知识的理论。例如,在使用PHP的现实世界中,mysql_query()mysqli->query()将仅执行第一个SQL查询。在;之后添加任何内容都会导致语法错误。

是否可以通过SQL注入对SELECT中的PHP查询进行WRITE操作?

更新:我的观点是澄清是否可以在PHP中进行第二次查询。没有讨论防止SQL注入的必要性或如何做到这一点。最终的解决方案显然是准备好的陈述。

2 个答案:

答案 0 :(得分:1)

Ali,SQL Injection是一个常见的概念,不仅仅局限于PHP,虽然它不是一个硬性规则,这些行为可以执行,但是它可以为黑客提供一个后门入口来进行db模式洞察,无论如何都是危险的,不仅是改变,而且任何人都可以看到任何信息都是危险的。

答案 1 :(得分:1)

  

我的观点是澄清是否可以在PHP中进行第二次查询。

在某些情况下 - 是的。
但这并不重要,因为注射不仅限于添加第二个查询。

然而,后一个问题与问题标题相矛盾,问题标题为

  

是不是夸大了SQL注入?

并且答案绝对没有。
因为

  

是否可以通过SQL注入在PHP中的SELECT查询中进行WRITE操作?

无论是否可能 - SELECT查询都不会比INSERT / UPDATE更具灾难性