我不熟悉sql注入,我想知道我的脚本中是否有任何不可侵犯性,如果有请指出并给我一些提示来解决它。
<?php
include("config.php");
?>
<?php
$desc = $_POST['desc'];
$desc = mysql_real_escape_string($desc);
$author = $_POST['author'];
$date = date("d/M/Y");
mysql_query("INSERT INTO `changelog`(`author`, `date`, `description`) VALUES ('{$author}','{$date}','$desc')") or die(mysql_error());
include("success.php");
?>
答案 0 :(得分:1)
是的。您完全依赖已被弃用的mysql_real_escape_string
。此外,您应该根据您期望的一系列输入构建一些自己的逻辑测试。您可能希望使用RegExp或其他一些修剪功能,但不要只依赖mysql_real_escape_string
。
答案 1 :(得分:0)
您应该编写一些逻辑来测试您期望的数据。
您可以查看http://php.net/manual/en/security.database.sql-injection.php以获取有关阻止SQL注入的更多信息。