看着这么多须要修复的感受整我的都很差了[捂脸]。借着一次修复过程,总结下常见的基于 Tomcat 容器的 Web 应用的优化和漏洞防御。web
打开 tomcat/conf/web.xml ,找到 sesion-config节点配置cooker-configshell
``` xml 30 true trueapache
**注意,设置 Secure=true 须要应用的访问协议是https。** ### 修改tomcat默认端口 #### 修改默认启动端口 打开 tomcat/conf/server.xml,找到
xmlvim
将 port 改成其余值。 #### 禁用8005端口 telnet ip 8005 而后输入 SHUTDOWN 就能够关闭 Tomcat,应该禁用,在 tomcat/conf/server.xml中找到
shell浏览器
修改成:
shelltomcat
### 防止 Slow HTTP POST Slow HTTP Denial of Service Attack漏洞是利用HTTP POST的时候,指定一个很是大的content-length,而后以很低的速度发包,好比10-100s发一个字节,让这个链接不断开。这样当客户端链接多了后,占用了webserver的全部可用链接,从而致使一种慢速DOS,属于一种拒绝服务攻击。 打开 tomcat/conf/server.xml,找到
xmlcookie
修改成
xmlapp
### 防止 Clickjacking - Framable Page Clickjacking(点击劫持) 在web端通常是iframe嵌套一个透明不可见的页面,让用户在不知情的状况下,点击攻击者想要欺骗用户点击的位置。 X-Frame-Options HTTP响应头是用来确认是否浏览器能够在frame或iframe标签中渲染一个页面,网站能够用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。 打开 tomcat/conf/web.xml,添加拦截器:
xml httpHeaderSecurity org.apache.catalina.filters.HttpHeaderSecurityFilter antiClickJackingOption SAMEORIGIN true框架
<filter-mapping> <filter-name>httpHeaderSecurity</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
参数说明 * DENY:不能被嵌入到任何iframe或frame中。 * SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。 * ALLOW-FROM uri:只能被嵌入到指定域名的框架中。 ### 隐藏 Tomcat 版本号 在 /home/portal/data/tomcat/tomcatCas/lib/ 下新建目录 org/apache/catalina/util
sh mkdir /tomcat/lib/org/apache/catalina/utilwebapp
建立一个 ServerInfo.properties 文件,保存为空文件
shell cd /tomcat/lib/org/apache/catalina/util vim ServerInfo.properties ```