在HTTP标头中隐藏Web服务器信息是一种好习惯吗?

时间:2008-12-04 01:03:43

标签: security http web-applications

这个问题与编程相关的安全性更高,对不起,如果它不应该在这里。

我目前正在开发一个Web应用程序,我很好奇为什么大多数网站都不介意在HTTP标头中显示他们确切的服务器配置,比如Apache和PHP的版本,完整的“mod_perl,mod_python,.. “上市等等。

从安全的角度来看,我更倾向于无法确定我是在Apache上运行PHP,在IIS上运行ASP.NET还是在Lighttpd上运行Rails。

显然“默默无闻不是安全”,但我是否应该担心访问者知道我的服务器运行的是什么版本的Apache和PHP?隐藏这些信息是好的做法还是完全没有必要?

6 个答案:

答案 0 :(得分:6)

流行的智慧是删除服务器ID和版本;更好的是,将它们更改为另一个合法的服务器ID和版本 - 这样攻击者就可以尝试针对Apache的IIS漏洞或其他类似的漏洞。不妨误导攻击者。

但说实话,还有很多其他的线索,我想知道这是否值得。我想它可以阻止攻击者使用搜索引擎查找已知漏洞的服务器。

(就个人而言,我不会在我的HTTP服务器上烦恼,但它是用Java编写的,并且更不容易受到典型攻击的影响。)

答案 1 :(得分:5)

我认为您通常会看到这些标题,因为系统默认发送

我经常删除它们,因为它们没有提供任何实际价值,并且可以按照您的建议显示有关服务器的信息。

答案 2 :(得分:5)

隐藏标题中的信息通常会减慢懒惰和无知的恶棍。指纹系统有很多种方法。

答案 3 :(得分:4)

针对IP运行nmap -O -sV将为您提供具有相当高准确度的操作系统和服务版本。通过让服务器宣传该信息,您提供的唯一额外信息是您加载了哪些模块。

答案 4 :(得分:3)

似乎有些答案缺少关闭标题的明显优势。

是的,你们都是对的;转动标题(以及目录列表中存在的状态行)并不能阻止攻击者查找您使用的软件。

但是,关闭此信息会阻止使用Google查找易受攻击的系统的恶意软件找到您。

tldr:不要将它用作(或甚至是)安全措施,而应将其用作驱逐不需要的流量的措施。

答案 5 :(得分:3)

我通常使用ServerTokens关闭Apache的长标头版本信息;它没有任何用处。

如果你从网络服务器发出较少的信息,那么对于未来的客户,笔测试公司等来说,它看起来更好的安全性,这一点没有人接受过。

因此,提供较少的信息可以增强感知的安全性(即,它表明您实际上已经考虑过并完成了某些事情)