可能重复: 绕过mysql_real_escape_string()的SQL注入
可能重复:
绕过mysql_real_escape_string()的SQL注入
我还没有看到任何评价或没有过时的信息。因此,存在一个问题:mysql_real_escape_string()是否完全可以防止SQL注入?但是它已经非常过时了(它从‘09开始),所以从‘12的php 5.3和mysql 5.5开始,它是否可以完全保护?
mysql_real_escape_string ALONE不能阻止 任何事情。
而且, 此功能与注射完全无关。
每当需要转义时,尽管有“安全性”,但仍需要转义,只是因为 SQL语法要求 转义 。 而且在您不需要的地方,转义也不会帮助您。
此函数的用法很简单:当您必须在查询中使用 带引号的字符串 时,必须转义其内容。不是因为某些虚构的“恶意用户”,而是只是为了逃避这些用于分隔字符串的引号。这是非常简单的规则,但PHP人士却非常误解。
这只是语法相关的功能,而不是安全性。
取决于此功能在安全方面的重要性,相信它将“保护数据库免受恶意用户的攻击” 将 导致您被注入。
您可以得出的结论: 不,此功能还不够 。
准备好的声明 也不是万灵药。 它只在可能的情况下覆盖您的背部。有关详细信息,请参见我对著名问题所做的重要补充