【发布时间】:2014-04-22 18:45:07
【问题描述】:
我在刚购买的网站上找到了这个源代码。只是想知道这个脚本是否安全?谁能给我解释一下?
<?php
if($_GET['map_loc']) {
$code = $_GET['map_loc'];
$result= mysql_query("SELECT ttc.continent_id, ttc.continent_id, c.name FROM territories_to_continents ttc
INNER JOIN continents c
ON ttc.continent_id = c.continent_id
WHERE ttc.code = '$code'
LIMIT 1;
");
$row = mysql_fetch_array($result);
$mapLoc = $row['name'];
}
?>
【问题讨论】:
-
这是不安全的:bobby-tables.com 加上它只是糟糕的代码。您只需假设您的查询永远不会失败并盲目地从结果中执行/获取数据。任何阶段的任何失败都会破坏后面的阶段。
-
很高兴您提出这个问题,因为代码完全不安全!不要使用旧的 MySQL 扩展。使用 MySQLi 或 PDO,无论选择哪种扩展,都使用 Prepared Statements!
-
使用 PDO 或 Mysqli。如果你太懒,使用pdo wrapper
-
股票答案在这里:stackoverflow.com/questions/60174/… - 实际提问的荣誉!