mysql_real_escape_string可以防止各种sql注入吗?

w8p*_*8ph 11 php mysql sql sql-injection

可能重复:
围绕mysql_real_escape_string()的SQL注入

我没有看到任何有价值的信息或没有过时的信息.所以,有一个问题:mysql_real_escape_string()是否完全防止SQL注入?然而它是非常过时的(它来自'09),因此在12月的php 5.3和mysql 5.5中,它是否完全保护?

You*_*nse 11

mysql_real_escape_string ALONE可以防止任何事情.

此外,该功能与注射完全无关.

每当你需要转义时,你需要它尽管有"安全性",但仅仅因为SQL语法需要它.如果你不需要它,逃避也不会对你有所帮助.

这个函数的用法很简单:当你必须在查询中使用带引号的字符串时,你必须转义它的内容.不是因为一些想象中的"恶意用户",而只是为了逃避用于分隔字符串的这些引号.这是一个非常简单的规则,但却被PHP人员误解了.

这只是语法相关的功能,而不是安全相关.

根据安全事务中的这一功能,相信它将"保护您的数据库免受恶意用户攻击" 引导您注入.

你可以自己做出的结论:
不,这个功能还不够.

准备好的声明也不是银弹.它仅覆盖了一半可能的病例.见我来了著名的问题做出了重要的另外的细节