嗨,我正在运行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
答案 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访问权限。
因此,如果您想要修复这些消息,那么就可以做两件事: