这种方式可以安全地将数据插入数据库吗?
$var = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["address"]), ENT_QUOTES, "ISO-8859-1"));
这种方式可以安全地将数据插入数据库吗?
$var = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["address"]), ENT_QUOTES, "ISO-8859-1"));
没有“银弹”。
但可以说,防止 SQL 注入的最有效方法之一是使用准备好的语句:
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
另一种同样有效的防御措施是使用最现代、最安全的 mySql API:mySqli(面向对象)或 PDO SQL:
http://php.net/manual/en/mysqlinfo.api.choosing.php
这是一个关于 SQL 注入的好链接,以及如何降低 mySql 代码中的风险:
http://php.net/manual/en/security.database.sql-injection.php
我强烈敦促您遵循两条准则:
1) 您不应将旧的、已弃用的 mySql API 用于任何新代码。请改用 MySQLi 或 PDO。
2) 您不应该在SQL 语句附近的任何地方允许原始用户输入。仔细验证您的输入,并尽可能使用准备好的语句。
恕我直言...