php安全信息问题

时间:2011-12-09 14:50:31

标签: php security

嗨,我正在运行php安全信息,我遇到了以下问题。

Warning
allow_url_fopen is enabled. This could be a serious security risk. You should disable allow_url_fopen and consider using the PHP cURL functions instead.
Current Value:  1
Recommended Value:  0

有人可以解释我如何解决这个问题。

Warning
PHP may be executing as a "privileged" group, which could be a serious security vulnerability.
Current Value:  99
Recommended Value:  100

Warning
PHP may be executing as a "privileged" user, which could be a serious security vulnerability.
Current Value:  99
Recommended Value:  100

2 个答案:

答案 0 :(得分:2)

我喜欢人们花时间保护您的PHP设置;所以道具给你!

是的,你应该关闭allow_url_fopen,因为这可以解决许多安全问题,就执行远程脚本而言。你可以通过编辑php.ini文件来做到这一点;通常位于/etc/php.ini中,但只是为了确保检查你的phpinfo()并查看它所说的“加载配置文件”。找到后,请更改以下值:

allow_url_fopen = 0

对于作为“priveleged”组执行的PHP,您需要检查您的apache用户与哪个组相关联。如果您有shell访问权限,可以通过命令行执行此操作:

id {username}

其中{username}是你的apache用户的名字...可能是“apache”可能是“php”可能是“www-data”等等。建议apache用户在自己的用户组中:

apache.apache

为此,您可以使用以下命令:

useradd -G {group-name} username

所以它看起来像:

useradd -G apache apache

答案 1 :(得分:0)

第一条消息意味着它所说的,在php.ini中启用了allow_url_fopen,允许基于fopen的函数打开URL,例如这可以工作:

fopen('http://www.example.com/somefile.txt');

Malicous用户可以使用它将远程文件加载到您的网络服务器。

第二个消息块意味着您正在运行PHP解释器(很可能是通过您的Web服务器,如Apache或nginx)作为“特权”用户,在大多数情况下是root用户。这是一个非常糟糕的主意,因为该用户具有无限制的系统访问权限,然后您将其传递到Web服务器。这将使您的Web服务器中的任何安全漏洞为任何入侵者提供完全的root访问权限。

因此,如果您想要修复这些消息,那么就可以做两件事:

  1. 将php.ini中的allow_url_fopen设置为0。
  2. 确保您不以root用户身份启动Web浏览器,而是像www-data或apache这样的用户(存在于通过包管理器安装Apache的大多数系统上)。