隐藏响应中的server和X-Powered-By


有时候,我们用调试工具查看别人的网站时,经常看到 X-Powered-By:PHP/7.1.8 这样的一行和 Server:Apache/2.4.27 (Win32) OpenSSL/1.0.2l PHP/7.1.8 这样的一行。

如:用 chrome 的调试工具中的 network 就可以查看:

这时候,我们就可以判断当前网站是在 Windows 系统, Apache服务下,编程语言为 php。这样就暴露了很多信息,对于网站来说是不安全的。在大多数情况下,需要把这两项给隐藏掉。

1、隐藏X-Powered-By

    修改 php.ini 文件。添加或修改 expose_php = Off

 

2、apache 隐藏 server

    修改httpd.conf 设置 

    ServerTokens Prod

 

3、nginx 隐藏 server

    修改nginx.conf  在http里面设置 

    server_tokens off;

修改完之后,重启 Apache(nginx 下也要重启 php-fpm)即可看到效果。如:

如果你用的是 ThinkPHP 框架,可能会有这样的一行:

X-Powered-By:ThinkPHP

利用上面的方法,可以将 X-Powered-By 隐藏掉,也可以直接修改 View.class.php 文件

// 将
header('X-Powered-By:ThinkPHP'); 
// 修改成其它的,如:
header('X-Powered-By: asp.net');

可以误导别人以为是 .net 开发的

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM