portal_serverity

看着这么多需要修复的感觉整个人都不好了[捂脸]。借着一次修复过程,总结下常见的基于 Tomcat 容器的 Web 应用的优化和漏洞防护。

添加 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 下没用的文件。

这里写图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐