我对 PHP 还很陌生,但已经熟悉 StackOverflow 一段时间了。
我最近一直在阅读有关使用 mysql_real_escape_string 的适当时机的信息,并且非常感谢有关以下内容的任何建议。
在初始 $_POST 变量上使用一次 mysql_real_escape_string 是否足以通过脚本保护字符串?
例如:
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
$email = mysql_real_escape_string($_POST["email"]);
$repeat_password = mysql_real_escape_string($_POST["repeat_password"]);
我在运行一堆 if 语句之前声明这些值,最后,一旦 if 语句完成,我就会向 mysql 数据库中插入一个 INSERT:
mysql_query("INSERT INTO users (username, password, email, signup_date) VALUES ('$username', '$password', '$email', CURDATE())") or die(mysql_error());
mysql_real_escape_string 在整个 if 语句中没有在其他任何地方使用 - 这对于新手来说是否足够安全,同时仍然保持一些注入(inject)保护?
最佳答案
不,这不安全。您应该切换到 prepared statements .
关于php - 什么时候应该转义 MySQL 中使用的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23281738/