总的来说,我想知道mysql_方法的主要弱点是什么,以及避免它的原因是什么(我想更具体的原因不仅仅是因为它已被弃用)。我打算更新受影响的脚本,并对为什么不推荐使用此旧方法感到好奇。
谢谢!
该mysql_query函数的设计使得您必须谨慎地转义要注入到其中的每一个数据,并且,即使您错过了一个数据,整个应用程序也可能会被自动SQL漏洞利用工具破坏。
mysql_query
无论mysqli这是和PDO支持占位符 要求 ,以确保您的查询是从SQL注入漏洞是安全的。调用mysql_real_escape_string所有内容不仅繁琐,而且容易出错,这就是问题所在。
mysqli
mysql_real_escape_string
这些mysql功能是PHP早期的产物,并且比mysqli选件或PDO设计提供的面向对象的新功能要受限制得多。
mysql
有很多非常好的理由使用这两个新接口之一,但是最重要的是该mysql_query功能太危险了,无法在生产代码中使用。有了它,您将永远远离一些非常严重的问题而成为一个错误。
充满密码和信用卡号的数据库碎片不断出现是有原因的。拥有明显的SQL注入点使得完全接管站点几乎太容易了。