隐藏X-Powered-By(nginx)

use*_*982 37 security nginx

那么有没有办法在Nginx上隐藏X-Powered-By?

pal*_*mic 48

x-powered-by由模块给出,例如php fastcgi模块提供expose_php=Off 在php.ini中设置

  • 如果你使用它,别忘了重启服务器和php-fpm (5认同)
  • proxy_hide_header X-Powered-By; in conf 在 nginx/1.11.9 上不起作用,此解决方案有效。这应该是公认的答案。 (2认同)

小智 39

proxy_hide_header X-Powered-By;
Run Code Online (Sandbox Code Playgroud)

  • 如果使用fastcgi,则必须使用`fastcgi_hide_header X-Powered-By;`. (7认同)
  • 我尝试将其添加到http {}部分和服务器{}部分,但它仍然保持设置.X-Powered-By:PHP/5.4.14 (4认同)
  • 确认与 nginx/1.1.19 上的 proxy_pass 一起使用。文档 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header。没有使用模块或 fastcgi。 (2认同)

小智 9

fastcgi_hide_header X-Powered-By或者proxy_hide_header X-Powered-By在http /服务器上下文中

  • 对于 PHP-FPM:“fastcgi_hide_header X-Powered-By;”将起作用。 (2认同)

小智 9

如果您将 NGINX 与 FastCGI 一起使用,您应该使用:

fastcgi_hide_header X-Powered-By;
Run Code Online (Sandbox Code Playgroud)


小智 5

nginx

  1. 打开这个文件

    $sudo vi /etc/nginx/nginx.conf

  2. 找到HTTP部分,该部分定义了Nginx的HttpCoreModule的配置。添加以下指令:

    $server_tokens off;

这将配置 Nginx 不在 HTTP 标头中发送任何版本号。

(可以删除服务器名称,但是,由于 Nginx 模块无法动态加载,因此您需要使用 HttpHeadersMoreModule Nginx 模块从源代码重新编译 Nginx。)

  1. 重新加载 Nginx 配置 要应用更改,请重新加载 Nginx 服务:

    $sudo service nginx reload

PHP

出于服务器安全原因,建议您禁用或隐藏此信息,防止攻击者通过了解您是否正在运行 PHP 来攻击您的服务器。

步骤1。

$ `sudo nano /etc/php.ini`
Run Code Online (Sandbox Code Playgroud)
  1. 找到关键字hide_php并将其值设置为Off

    $expose_php = off

  2. 如果您将 PHP 作为 FPM 运行,那么您需要重新加载 PHP-FPM

    $sudo service php-fpm reload

重新加载后,响应标头X-Powered-By: PHP/7.2应该会丢失。