CakePHP 2.6.6 和 3.0.6 发布

CakePHP 核心团队很高兴宣布 CakePHP 2.6.6 和 3.0.6 现已发布。这些是包含重要安全修复的维护版本。

安全修复

本周早些时候,我们收到通知,RequestHandlerComponent 存在一个漏洞,可能允许精心制作的请求创建拒绝服务攻击。RequestHandlerComponent 利用 Xml::build(),它允许读取本地文件。我们建议所有使用 RequestHandlerComponent 的应用程序进行升级,或禁用解析 XML 负载。要禁用 XML 负载解析,您可以执行以下操作

// In a controller's beforeFilter
$this->RequestHandler->addInputType('xml', array(0 => function() { return array(); }));

以上代码将用一个空操作函数替换内置的 XML 解析。我们感谢 Terada Takeshi 通过我们的 安全问题流程 通知我们此安全问题。

2.6.6 中的其他修复

  • FormHelper::radio() 现在可以为具有多字节值的单选按钮正确生成 ID 属性。
  • Inflector::humanize()Inflector::underscore() 现在可以与 UTF8 字符一起正常工作。

3.0.6 中的其他修复

  • FormHelper::radio() 现在可以为具有多字节值的单选按钮正确生成 ID 属性。
  • Inflector::humanize()Inflector::underscore() 现在可以与 UTF8 字符一起正常工作。
  • FormHelper::postLink() 中的 URL 不会再被双重编码。
  • PaginatorHelper::numbers() 现在支持 url 选项。
  • 记录异常时现在会尊重 Error.trace。
  • 在 3.0.3 中引入的实体访问器缓存已被移除。它导致了许多问题,并没有显著提高性能。
  • EntityTrait::getOriginal()EntityTrait::extractOriginal() 现在返回最初为 null 的值。
  • 关联查询构建器中使用的空查询表达式不再导致生成无效的 SQL。

一如既往,衷心感谢所有帮助我们发布此版本的社区成员,他们报告了问题并提交了拉取请求。

github 上下载打包版本