为什么以及何时从HTTP响应中省略服务器头?

时间:2016-10-26 15:15:04

标签: php apache http ubuntu webserver

我可能会参与abc.com下托管的xyz.abc.com项目。当我访问xyz.abc.com时,响应包含server标头,我可以知道它是在Ubuntu OS上运行的Apache2(Apache/2.2.22 (Ubuntu))。但是当我访问abc.com并在其上导航时,任何回复中都没有server标题。

有关此行为的任何解释?

server标头的存在是通过Apache配置还是通过编程控制的(在PHP中可以设置最后修改的例子)?如果是via指令,则意味着对于不同的域有不同的Apache实例(一个配置为返回头,另一个配置为隐藏它)?

或者可以为xyz.abc.com使用Ubuntu / Apache2,为abc.com使用完全不同的技术堆栈?这项技术的名称是什么?

你能解释一下新手的不同可能性吗?提前谢谢你。

1 个答案:

答案 0 :(得分:2)

关于httpd,没有选项可以通过官方方式删除Server响应头。

官方说,通过配置可以做的最多就是设置这些指令:

ServerTokens Prod
ServerSignature off

有了这个,你的服务器响应头只会说" Apache"。这是最值得推荐的事情。

虽然如果你有一些偏执审计坚持让你完全删除标题,你有一些"第三方"对我而言,最着名的方法是使用" mod_security"。

还有第三种选择,即自己修改Apache HTTPD源代码并编译它以便它不会添加响应头,但我怀疑是否有人会建议你这样做。

在任何情况下并回答您的主要问题,删除该标题并不会真正为您的服务器添加任何安全性,因此没有理由将其删除。