只看:
(来源:https://xkcd.com/327/)
这个SQL做了什么:
Robert'); DROP TABLE STUDENTS; --
Run Code Online (Sandbox Code Playgroud)
我知道这两个'并且--是用于评论,但是这个词也没有DROP被评论,因为它是同一行的一部分?
我和一个声誉很高的PHP人讨论过这个问题:
PDO在这里没用.以及mysql_real_escape_string.质量极差.
这当然很酷,但老实说我不知道建议使用mysql_real_escape_string或PDO修复此代码有什么问题:
<script type="text/javascript">
var layer;
window.location.href = "example3.php?layer="+ layer;
<?php
//Make a MySQL connection
$query = "SELECT Category, COUNT(BUSNAME)
FROM ".$_GET['layer']." GROUP BY Category";
$result = mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
进入这个
$layer = mysql_real_escape_string($_GET['layer']);
$query = "SELECT Category, COUNT(BUSNAME)
FROM `".$layer."` GROUP BY Category";
Run Code Online (Sandbox Code Playgroud)
,考虑到JavaScript代码在客户端发送.