我从SQL注入中使用mysql的方式是否完全安全?

时间:2015-03-25 21:15:39

标签: php mysql web sql-injection code-injection

我读了很多关于防止sql注入的类型。如果100%的情况有另一种方法可以阻止他们,我可能不想使用准备好的陈述。

目前我坚持这样做:

$safe_var = mysql_real_escape_string ( $unsafe_var);
mysql_set_charset("utf8");
$sql = "REPLACE `news` (`id`, `author`, `title`, `text`, `time`)" . "VALUES ('".$id."', '$author', '$title', '$text', UNIX_TIMESTAMP());";
mysql_query ( $sql );

对于此示例,sql语句中的所有变量都在start时构造为safe_var。我看到很多关于什么是sql保存的意见,什么不是,所以我不知道什么是正确的。 我的问题是,这是100%保存,是否可以在每个可能的sql语句中使用这种方式,通过使用mysql_real_escape_string并将变量放在单引号中,就像我在语句中所做的那样?

提前感谢您的帮助!

PS:我知道有很多问题喜欢这个,但每个人都在说不同的东西,我仍然没有发现任何人说我的方式在每个可能的陈述中都是安全的。

1 个答案:

答案 0 :(得分:-3)

至少你想要转换为mysqli而不是mysql。您还希望进一步测试用户输入,以确保其合法。

强烈推荐pdo和准备好的陈述