【问题标题】:Why Magic Quotes has been removed from PHP 5.4?为什么从 PHP 5.4 中删除了 Magic Quotes?
【发布时间】:2013-04-12 11:13:17
【问题描述】:

Magic Quotes 从 PHP 5.4 中删除的技术原因是什么?

来自 PHP 文档

性能

性能 因为不是每条转义数据都插入到数据库中,所以转义所有这些数据会造成性能损失。在运行时简单地调用转义函数(如 addslashes())更有效。尽管 php.ini-development 默认启用这些指令,但 php.ini-production 禁用它。此建议主要是出于性能原因。

Magic Quotes 从 PHP 中删除还有其他原因吗?

【问题讨论】:

    标签: php magic-quotes


    【解决方案1】:

    这很好地解释了为什么 chao 在手册中不推荐使用

    引用chao的评论

    不推荐使用魔术引号的真正原因是,一种千篇一律的转义/引用方法是错误的,而且非常危险。不同类型的内容具有不同的特殊字符和不同的转义方式,并且在一个内容中起作用的内容往往会在其他地方产生副作用。任何此处或其他任何地方的示例代码,假装像魔术引号一样工作——或者对 HTML、SQL 或其他任何东西进行类似的转换——同样是错误的,同样是危险的。

    魔术引号不是为了安全。他们从来没有。这是一件很方便的事情——它们的存在使得 PHP 新手可以摸索并最终编写一些有点工作的 mysql 查询,而无需了解如何正确转义/引用数据。他们防止一些意外的语法错误,就像他们的工作一样。但它们不会阻止恶意和半知识的攻击者破坏 PHP noob 的数据库。而那个可怜的菜鸟甚至可能永远不知道他的数据库现在是如何消失或为什么消失了,因为魔术引号(或他那漂亮的“我要逃避一切”功能)给了他一种虚假的安全感。他不必学习如何真正处理不受信任的输入。

    也不错Wikipedia : Magic quotes Criticism

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 2016-05-12
      • 2018-03-31
      • 2019-04-02
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多