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