我的脚本容易受到sql注入吗?

时间:2012-11-07 15:27:30

标签: php sql-injection sql-insert

首先感谢您阅读我的问题。

在这几天,我看到我的网站上运行了很多“恶意”网址查询,所以我担心我的php脚本是否容易受到sql注入攻击。

我的网址结构是:http://mywebsite.com/post.php?id=7573 要从帖子中获取我需要的所有信息,我使用URL中的帖子ID。

要“清除”此ID我使用此方法:

$id = mysql_real_escape_string ($id);
$safeID = intval(preg_replace("/[^0-9]/", "", $id));
$sql = "SELECT * FROM web_content WHERE state = '1' AND ID = '$safeID'";
$res = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_assoc($res);
.........

我需要知道发送到数据库的safeID是否真的“安全”。

谢谢

3 个答案:

答案 0 :(得分:2)

它可以像使用intval($id)

一样简单

答案 1 :(得分:1)

确实如此,但由于preg_replace已经逃脱了所有“坏”字符,因此不需要执行mysql_real_escape_string

答案 2 :(得分:0)

这是安全的。甚至不需要mysql_real_escape_string和preg_replace,因为intval只返回一个整数。

请注意,intval在失败时返回0。因此,接收$ bla的'bla'与接收'0'相同。如果你的逻辑没问题,不要担心。