哪个更安全:Tomcat独立还是Tomcat后面的Apache?

这个问题不是关于性能,也不是关于负载平衡等。

哪个更安全:以独立模式运行Tomcat,还是在Apache后面运行Tomcat?

事情是,Tomcat是用Java编写的,因此它对缓冲区溢出/溢出几乎是免疫的(除非在Tomcat使用的C编写的lib中的缓冲区溢出可以被触发,但是它们很less见(我记得最后一次是在zlib中,许多许多月前)和一个黑客实际利用),它摆脱了很多潜在的利用。

这一页:

http://wiki.apache.org/tomcat/FAQ/Security

有这样的说法:

由于Tomcat的安全问题,公司,组织或个人都没有受到公开的损害……只有理论上的漏洞被发现。 尽pipe没有logging这些脆弱性的实际利用情况,但所有这些都得到解决。

这与Java缓冲区溢出/溢出几乎不存在的事实相结合,使我相信Tomcat处于独立模式是相当安全的。

除此之外,我可以在Linux上安装Java和Tomcat,而不需要root。 唯一需要成为根的时刻是build立一个透明的端口8080到80端口的转发(和8443到443)。 两个iptables行作为根,这是所有的根需要。 (我不知道Apache)。

Apache比Tomcat使用得多,并且没有像Tomcat那样的安全logging。

什么使Tomcat + Apache 安全?

什么会使Tomcat + Apache 不太安全?

总之:哪个更安全,Tomcat独立还是Tomcat与Apache? (记住这里的performance不是问题)

关于这个主题的一些背景,在2007年的Tomcat邮件列表上:

http://mail-archives.apache.org/mod_mbox/tomcat-users/200710.mbox/%[email protected]%3E

简短的回答:如果你没有看到有效的把Tomcat放在httpd前面的理由,那么很可能没有。

索赔之一有时可以阅读,你应该总是把一个httpd放在Tomcat的前面是完全废话IMO。 事实恰恰相反。

什么会使Tomcat + Apache不太安全?

  1. 更大的攻击面。 更多的代码是parsing请求。 所以遇到/利用安全漏洞的可能性更大。
  2. 更多的修复安装,更多的configuration文件,以获得正确的和更多的安全设置得到正确的。 人为错误的机会更大。

什么使Tomcat + Apache更安全?

不知道。