PHP - cgi.fix_pathinfo = 1 - 在网络服务器上的 php.ini (wp) 中有什么影响

Obm*_*nen 5 php wordpress ini

在我的服务器上,主机提供了一些替代的 PHP.ini 配置。

唯一具有 Extension Zip(我需要的)的描述为:

zip_cgi.fix_pathinfo

有经验的用户的高级设置:cgi.fix_pathinfo = 1 和 Extension Zip Enabled

我主要将网站用于 wordpress ,但我想知道这可能产生的影响(或含义)是什么。

来自:http : //www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo

为 CGI 提供真正的 PATH_INFO/ PATH_TRANSLATED 支持。PHP 以前的行为是将 PATH_TRANSLATED 设置为 SCRIPT_FILENAME,而不是理解 PATH_INFO 是什么。有关 PATH_INFO 的更多信息,请参阅 CGI 规范。将此设置为 1 将导致 PHP CGI 修复其路径以符合规范。设置为零会导致 PHP 像以前一样运行。默认情况下它是打开的。您应该修复脚本以使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。

搜索谷歌只为我提供了模糊的结果,以及直接询问主持人(呼叫中心的女孩并不真正理解,技术人员没有响应..)

sse*_*gei 3

ZIP 扩展似乎希望 URL 作为 PATH_INFO 变量传递。PHP 的 CGI 和 FastCGI 实现没有可用的 PATH_INFO,因此当尝试传递 URI 时,PHP 会失败。解决这个问题的一种方法是将 cgi.fix_pathinfo 设置为 true。

  • @simON:如果您有嵌入恶意 PHP 代码的图像,并通过接受图像的网站上传它,例如“/wordpress/content/image/badpicture.jpg”,然后尝试导航到“/wordpress/content/” image/badpicture.jpg/FakeFile.php`,PHP解释器将被调用,猜测您的意思是运行`badpicture.jpg`,因为它包含PHP代码,而不是不存在的`FakeFile.php`,然后你的 PHP 代码很糟糕,它可以做任何 PHP 能做的事情——即服务器受到损害。 (6认同)
  • 好吧,根据这个 https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-6 `cgi.fix_pathinfo = 1` 提出了一个安全风险,但我还是不知道风险是什么 (3认同)
  • @Nick,这不再是 php 5.3.9+ 的安全风险,security.limit_extensions 不会执行 .jpg 文件。 (2认同)