开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

Zend Framework 1.7.5 发布 – 关于 Zend_View 的重要说明

昨天,我们发布了ZendFramework1.7.5。它包含对Zend_View的一些有争议的安全修复,可能会影响组件的某些用例;我将提供有关该安全修复程序的详细信息,并展示如何在此处解决它。

用户提交了一份问题报告,显示Zend_ViewsetScriptPath()方法中存在潜在的本地文件包含漏洞:如果用户输入用于指定脚本路径,那么就有可能触发LFI。该漏洞是完全人为的;理智的开发人员不应该使用用户输入来配置视图脚本路径。然而,它指出了另一个非常真实的LFI攻击向量。

攻击向量再次是信任未经过滤的输入的情况,但这次是更有可能发生的情况。在这种特殊情况下,假设我们将Zend_View配置如下:

$view->addScriptPath('/var/www/application/views/scripts');

然后我们接受以下输入,并将其传递给render()方法:“../../../../etc/passwd”。

然后触发了LFI向量,因为render()实际上允许遍历父目录。

ZF1.7.5现在可以检查此类符号(../..\\),并在检测到时抛出异常。

在#zftalk.dev上,一些贡献者指出这可能会破坏他们的一些应用程序。在他们的情况下,他们使用的是父目录遍历,而不是来自用户输入。在这种情况下,由于他们可以控制该值,所以他们认为最好将检查留给用户态代码。

为了适应这一点,我们引入了一个标志,“lfiProtectionOn”。默认情况下,此标志为真,启用检查。您可以通过以下两种方式之一将其关闭:

// At instantiation:
$view = new Zend_View(array(
    'lfiProtectionOn' => false,
));

// Programmatically, at any time:
$view->setLfiProtection(false);

包含此安全修复程序是一个艰难的决定。一方面,我们非常努力地保持版本之间的向后兼容性。另一方面,我们的用户也有责任确保他们的安全。希望上面添加的LFI保护标志将有助于缓解迁移问题。

有关此更改的更多信息,您可以阅读相关手册页。

未经允许不得转载:我爱分享网 » Zend Framework 1.7.5 发布 – 关于 Zend_View 的重要说明

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏