我正在尝试符合 PCI 标准,而 PCI 扫描公司将我们的 Ubuntu 12.04.3 (PHP 5.3.10-1ubuntu3.8) 标记为 CVE-2013-1635 [1],上面写着“我们不支持使用 open_basedir”。这到底是什么意思?我仍然在 php.ini 文件中看到对这两个指令的引用,而 PCI 公司表示 Canonical 尚未“解决”该问题。有什么建议吗?
[1]http://people.canonical.com/~ubuntu-security/cve/2013/CVE-2013-1635.html
答案1
php 的示例配置文件有更详细的解释:
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; NOTE: this is considered a "broken" security measure.
; Applications relying on this feature will not recieve full
; support by the security team. For more information please
; see /usr/share/doc/php5-common/README.Debian.security
如果您不使用 open_basedir 功能,则该漏洞不会影响您,无需担心。就像如果您的用户密码足够安全,“密码暴力破解”漏洞也不会影响您一样。
请注意,其他安全团队也决定“不解决”此问题,因为 open_basedir 指令不被视为正确实现的安全功能:
https://bugzilla.redhat.com/show_bug.cgi?id=169857#c1
这个错误将被用作跟踪 PHP“安全”模式/open_basedir 问题的元错误,这些问题通常不会在 PHP 包的 Red Hat Enterprise Linux 更新中修复。
答案2
openbase_dir 可能会导致问题和安全漏洞,尤其是在报告了错误并需要修复时。您应该在 php.ini 中注释掉此指令或考虑其他操作系统,因为这是 ubuntu 特有的问题。我建议您最好使用 centOS。如果不需要此指令,请咨询您的开发人员,最好在 php.ini 中将其注释掉。