有啥方法可以在我的代码中注入 SQL 吗? [复制]
Posted
技术标签:
【中文标题】有啥方法可以在我的代码中注入 SQL 吗? [复制]【英文标题】:Is there any way to SQL inject in my code? [duplicate]有什么方法可以在我的代码中注入 SQL 吗? [复制] 【发布时间】:2013-07-20 14:30:42 【问题描述】:我对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");
?>
【问题讨论】:
-1。 *** 既不是用来判断某人的代码,也不是用来发现人们代码中的错误或安全问题。不过我们可以回答问题。 是的,Don't usemysql_*
functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial.
【参考方案1】:
是的,有。您完全依赖于已弃用的 mysql_real_escape_string
。此外,您应该根据您期望的一系列输入构建一些您自己的逻辑测试。您可能想要使用 RegExp 或其他一些修剪功能,但不要仅仅依赖 mysql_real_escape_string
。
【讨论】:
【参考方案2】:您应该编写一些逻辑来测试您期望的数据。
您可以查看http://php.net/manual/en/security.database.sql-injection.php,了解有关防止 SQL 注入的更多信息。
【讨论】:
以上是关于有啥方法可以在我的代码中注入 SQL 吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以区分在 iPhone 模拟器和实时设备上运行的代码吗? [复制]