首页 > 解决方案 > php.ini request_order 安全问题

问题描述

我们正在使用 Chef 来配置我们的机器。最近发现 CentOS 的 Chef PHP 配方没有request_order参数集。它使用variables_order设置为 的参数EGPCS

php.ini 的文档说

...由于安全问题,默认分发 php.ini 文件不包含用于 cookie 的“C”。

我的问题是实际的安全问题是什么?

我不是 PHP 开发人员,我问过的少数开发人员设法给出了模棱两可的答案。谷歌也没有那么有帮助

标签: phpsecurity

解决方案


request_order字符串

该指令描述了 PHP将 GET、POST 和 Cookie变量注册到 _REQUEST数组中的顺序。注册是从左到右完成的,较新的值会覆盖较旧的值。

如果未设置此指令,则 variables_order 用于 $_REQUEST 内容。

请注意,出于安全考虑,默认分发 php.ini 文件不包含 cookie 的“C”。

因此,这意味着默认情况下您$_REQUEST将不包含来自$_COOKIE.

这意味着如果您有 cookie,则在滥用超全局时$_COOKIE['is_admin'] = false您无法通过http://example.com/?is_admin=1更改 cookie 值$_REQUEST

例如if ($_REQUEST['is_admin']){$this->showAllPasswords()},当将 Cookie 填充到$_REQUEST


推荐阅读