php 配置默认允许服务器在 http 响应头 <code>x-powered-by</code> 中显示安装在服务器上的 php 版本。
出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你的服务器的攻击者知道你是否运行了 php。
假设你服务器上安装的特定版本的 php 具有安全漏洞,而攻击者了解到这一点,他们将更容易利用漏洞并通过脚本访问服务器。
因此,在本文中,我们将解释如何隐藏或关闭服务器 http 响应头中的 php 版本号。
此设置可以在加载的 php 配置文件中配置。如果你不知道此配置文件在服务器上的位置,请运行以下命令找到它:
<code>$ php -i | grep "loaded configuration file"</code>
php 配置文件位置
<code>---------------- 在 centos/rhel/fedora 上----------------</code>
<code>loaded configuration file => /etc/php.ini</code>
<code>---------------- 在 debian/ubuntu/linux mint 上----------------</code>
<code>loaded configuration file => /etc/php/7.0/cli/php.ini</code>
在对 php 配置文件进行任何更改之前,我建议您首先备份您的 php 配置文件,如下所示:
<code>----------------在 centos/rhel/fedora 上----------------</code>
<code>$ sudo cp /etc/php.ini /etc/php.ini.orig</code>
<code>$ sudo cp /etc/php/7.0/cli/php.ini /etc/php/7.0/cli/php.ini.orig</code>
用你最喜欢的编辑器,使用超级用户权限打开文件:
<code>$ sudo vi /etc/php.ini</code>
<code>----------------在 debian/ubuntu/linux mint 上----------------</code>
<code>$ sudo vi /etc/php/7.0/cli/php.ini</code>
定位到关键词 <code>expose_php</code>,并将值设置成 <code>off</code>:
<code>expose_php = off</code>
保存并退出文件。之后,重启 web 服务器:
<code>---------------- 使用 systemd ----------------</code>
<code>$ sudo systemctl restart httpd 或</code>
<code>$ sudo systemctl restart apache2</code>
<code>---------------- 使用 sysvinit ----------------</code>
<code>$ sudo service httpd restart 或</code>
<code>$ sudo service apache2 restart</code>
最后,不过同样重要,使用下面的命令检查服务器 http 响应头是否仍然显示你的 php 版本号。
<code>$ lynx -head -mime_header http://localhost</code>
<code>或者</code>
<code>$ lynx -head -mime_header http://server-address</code>
这里的标志含义是:
<code>-head</code> – 发送一个请求 mime 报头的 head 请求。
<code>-mime_header</code> – 打印所提取文档的 mime 标头及其源代码。
就是这样了!在本文中,我们解释了如何隐藏服务器 http 响应头中的 php 版本号以保护 web 服务器免受可能的攻击。
原文发布时间为:2017-02-05
本文来自云栖社区合作伙伴“linux中国”