我的服务器对Server: Apache/2.2.15 (CentOS)
所有请求都做出响应。我猜这会暴露我的服务器架构,使黑客更容易得手。
这对网络浏览器有用吗?我应该保留它吗?
答案1
我认为,最好尽可能地掩盖这一点。这是你用来入侵网站的工具之一——发现其技术,利用该技术的已知缺陷。出于同样的原因,不久前的安全最佳实践开始提倡使用“/view/page”而不是“/view/page.jsp”或“/view/page.asp”形式的 URL……这样底层技术就不会暴露。
关于这一点有一些讨论,例如https://stackoverflow.com/questions/843917/why-does-the-server-http-header-exist和http://www.troyhunt.com/2012/02/shhh-dont-let-your-response-headers.html显然还有《Hacking Exposed》这本书。
安全 SE 上也有此内容https://security.stackexchange.com/questions/23256/what-is-the-http-server-response-header-field-used-for
但请记住,这并不是保护服务器的最终目的。这只是朝着正确方向迈出的一步。它不会阻止任何黑客攻击的实施。它只是让黑客攻击的实施变得不那么明显。
答案2
您可以根据需要更改服务器标头,但不要指望这样做能保证安全。只有保持最新状态才能做到这一点,因为攻击者可以忽略您的服务器标头并从一开始就尝试所有已知的漏洞。
RFC 2616 部分规定:
鼓励服务器实施者将该字段设为可配置选项。
Apache 确实通过该ServerTokens
指令做到了这一点。您可以根据需要使用它,但同样,不要认为它会神奇地阻止您受到攻击。
答案3
如果攻击者一直保存着哪些服务器运行哪些软件的列表,那么显示包含版本信息的完整字符串可能会使您面临更大的 0day 攻击风险。
话虽如此,您不应该指望隐藏服务器字符串就能保护您免受黑客攻击。有多种方法可以根据响应和错误报告的方式来识别服务器。
我尽可能地禁用我的字符串,但我不会为那些无法隐藏的字符串(例如 OpenSSH)担心。