-1

这种方式可以安全地将数据插入数据库吗?

$var = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["address"]), ENT_QUOTES, "ISO-8859-1"));
4

1 回答 1

2

没有“银弹”。

但可以说,防止 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 语句附近的任何地方允许原始用户输入。仔细验证您的输入,并尽可能使用准备好的语句。

恕我直言...

于 2013-07-08T04:09:00.627 回答