由于 Windows 二进制文件存在一个问题,允许任何用户直接从 PHP 二进制文件中读取或执行文件内容,因此我们推迟了 PHP for Windows 4.1.2 版本的发布,以便修复此问题。此版本还修复了文件上传安全问题。
在此新版本中,我们引入了两个新的 php.ini 设置,必须设置这两个设置才能使二进制文件正常工作。值得注意的是,此特定修复仅适用于 CGI 二进制文件。SAPI 模块仍将按预期工作,建议使用 SAPI 模块。
新的设置是:
cgi.force_redirect 0|1
cgi.redirect_status_env 环境变量名称
已知 Apache(任何版本)和 iPlanet 服务器容易受到此问题的影响,但 Microsoft IIS 则不会。由于 cgi.force_redirect 的值为 1 或 0(启用或禁用),如果您运行的是 Apache 或 iPlanet 服务器,则应将其设置为 1;对于 IIS,则应将其设置为 0。如果您不确定需要哪个值,请将其设置为 1 并查看您的脚本是否可以执行。更改 php.ini 文件后,您需要停止并重新启动服务器才能使更改生效。
如果启用了 cgi.force_redirect,并且您未在 Apache 或 Netscape(iPlanet)Web 服务器下运行,则可能需要设置一个环境变量名称,PHP 将查找该名称以知道可以继续执行。设置此变量可能会导致安全问题,因此请先检查您的操作。
您可以此处找到更多信息,这些信息与最初导致发布 4.1.2 版本的表单上传漏洞有关。