我可能会参与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
使用完全不同的技术堆栈?这项技术的名称是什么?
你能解释一下新手的不同可能性吗?提前谢谢你。
答案 0 :(得分:2)
关于httpd,没有选项可以通过官方方式删除Server响应头。
官方说,通过配置可以做的最多就是设置这些指令:
ServerTokens Prod
ServerSignature off
有了这个,你的服务器响应头只会说" Apache"。这是最值得推荐的事情。
虽然如果你有一些偏执审计坚持让你完全删除标题,你有一些"第三方"对我而言,最着名的方法是使用" mod_security"。
还有第三种选择,即自己修改Apache HTTPD源代码并编译它以便它不会添加响应头,但我怀疑是否有人会建议你这样做。
在任何情况下并回答您的主要问题,删除该标题并不会真正为您的服务器添加任何安全性,因此没有理由将其删除。