有啥方法可以在我的代码中注入 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 use mysql_* 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 模拟器和实时设备上运行的代码吗? [复制]

C# 和 MySQL .NET 连接器 - 有啥方法可以防止泛型类中的 SQL 注入攻击?

c++ 中的 dynamic_cast 有啥替代方法吗?

这种动态 SQL 查询生成对注入安全吗?

这个准备好的语句可以防止 SQL 注入吗? [复制]

有啥方法可以防止大于特定大小的文件被上传? [复制]