避免MySQL注入和XSS

时间:2013-07-08 04:03:01

标签: xss sql-injection

这样可以保证将数据插入数据库吗?

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

1 个答案:

答案 0 :(得分: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)您应该 NOT 使用旧的,已弃用的mySql API来获取任何新代码。改为使用MySQLi或PDO。

2)你应该 NOT 允许在SQL语句附近的任何地方输入原始用户。仔细验证您的输入,并尽可能使用准备好的语句。

... IMHO

相关问题