portal 常见漏洞与解决方法(基于 Tomcat8.5)
看着这么多需要修复的感觉整个人都不好了[捂脸]。借着一次修复过程,总结下常见的基于 Tomcat 容器的 Web 应用的优化和漏洞防护。
COOKIE 常用属性设置
添加 httponly=true 和 Secure=true
- httponly 能有效防止 XXS 攻击。
- Secure 设置是否只能通过https来传递此条 cookie 。
打开 tomcat/conf/web.xml ,找到 sesion-config节点配置cooker-config
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
注意,设置 Secure=true 需要应用的访问协议是https。
修改tomcat默认端口
修改默认启动端口
打开 tomcat/conf/server.xml,找到
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
将 port 改为其他值。
禁用8005端口
telnet ip 8005 然后输入 SHUTDOWN 就可以关闭 Tomcat,应该禁用,在 tomcat/conf/server.xml中找到
<Server port="8005" shutdown="SHUTDOWN">
修改为:
<Server port="-1" shutdown="SHUTDOWN">
防止 Slow HTTP POST
Slow HTTP Denial of Service Attack漏洞是利用HTTP POST的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,让这个连接不断开。这样当客户端连接多了后,占用了webserver的所有可用连接,从而导致一种慢速DOS,属于一种拒绝服务攻击。
打开 tomcat/conf/server.xml,找到
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
修改为
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="8000"
redirectPort="8443"
/>
防止 Clickjacking - Framable Page
Clickjacking(点击劫持) 在web端一般是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。 X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。
打开 tomcat/conf/web.xml,添加拦截器:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<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
mkdir /tomcat/lib/org/apache/catalina/util
创建一个 ServerInfo.properties 文件,保存为空文件
cd /tomcat/lib/org/apache/catalina/util
vim ServerInfo.properties
删除 Tomcat 目录中没用的目录
- 删除 tomcat/webapps 目录下的 docs、examples、host-manager、manager目录。
- 删除 ROOT 下没用的文件。
上一篇: el-tree鼠标右键自定义菜单
下一篇: 两步轻松实现MySQL数据库主从复制