如何使用 php-fastcgi 删除 nginx 中的“Client-Peer”(等)标头

如何使用 php-fastcgi 删除 nginx 中的“Client-Peer”(等)标头

我的设置:

  • 操作系统:Ubuntu 11.04
  • HTTP 服务器:nginx 1.2.1
  • (其他不相关的软件 - ruby​​、python 等)

我的问题:

我正在尝试完全掩盖为页面提供服务的软件(部分是出于安全考虑,主要是因为它很有趣),我已设法更改服务器名称并删除X-Powered-Byphp-fastcgi 添加的标头,但在删除三个标头时遇到了麻烦:

Client-Date: Thu, 14 Jun 2012 20:32:34 GMT
Client-Peer: 205.186.146.37:80
Client-Response-Num: 1

我已经使用了more_clear_headersHttpHeadersMore 模块,但是尽管能够删除X-Powered-By标题,但却没有效果。

这是在我的http街区

more_set_headers "Server: Tesco Value";
more_clear_headers "X-Powered-By";
more_clear_headers "Client-*";
more_clear_headers "Client-Date";
more_clear_headers "Client-Response-Num";
more_clear_headers "Client-Peer";
more_clear_headers "X-Pingback";

add_header X-Required-Volume-Setting 11;
add_header X-Required-Speed 88mph;

# NEW: added in thanks to the answer from @kworr - but still doesn't work
fastcgi_hide_header "Client-Date";
fastcgi_hide_header "Client-Response-Num";
fastcgi_hide_header "Client-Peer";

如果您运行,HEAD slightlymore.co.uk您会发现显式规则和通配符规则都无法删除标头。我猜这些标头是在阶段之后设置的output-header-filter- 但我想知道是否有人对此有更多信息,尤其是是否有人有解决方案。

更新

@kworr 建议fastcgi_hide_header可能是我正在寻找的 - 但仍然不起作用。也许只是我的系统?

答案1

这些标头根本不存在于 HTTP 响应中。nginx 和 php-fpm 都从未发送过它们,因此尝试阻止它们是没有意义的。

它们是合成的响应标头添加对您的用户代理 libwww-perl 的响应。

如果您不希望看到它们,请使用其他库(例如 libcurl)发出 HTTP 请求。

答案2

我认为fastcgi_hide_header才是您真正需要的。

答案3

我今天遇到了这个问题。

我解决了该问题,并为 fastcgi-fastcgi_param设置了空白( )值,该值由前缀+大写请求标头创建。''variableHTTP_

标题示例Client-Peer

fastcgi_param HTTP_CLIENT_PEER '';

相关内容