Tomcat服務器配置X-Content-Type-Options、X-XSS-Protection、Content-Security-Policy、X-Frame-Options


Tomcat目錄下,配置請求頭

        打開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> <init-param> <param-name>blockContentTypeSniffingEnabled</param-name> <param-value>false</param-value> </init-param>
        <async-supported>true</async-supported>
    </filter>
    
    <filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

備注:如果找不到org.apache.catalina.filters.HttpHeaderSecurityFilter相關jar,可以去高版本Tocat中的catalina中將對應的HttpHeaderSecurityFilter.class拷貝進當前的低版本中。

(用解壓縮工具打開,直接拖拽進去,不要解壓再壓縮),然后重啟服務,再查看請求頭,你就會看到配置已生效。如圖,左側為未配置的請求頭信息,右側為配置后的請求頭信息。

 

1、X-Frame-Options

       是為了減少點擊劫持(Clickjacking)而引入的一個響應頭,這個響應頭支持三種配置:

  • DENY:不允許被任何頁面嵌入;
  • SAMEORIGIN:不允許被本域以外的頁面嵌入;
  • ALLOW-FROM uri:不允許被指定的域名以外的頁面嵌入(Chrome現階段不支持);
<init-param> <param-name>antiClickJackingOption</param-name> <param-value>SAMEORIGIN</param-value> </init-param>

2、X-XSS-Protection

        這個響應頭是用來防范XSS的,現在主流瀏覽器都支持,並且默認都開啟了XSS保護,用這個header可以關閉它。它有幾種配置:

  • 0:禁用XSS保護;
  • 1:啟用XSS保護;
  • 1; mode=block:啟用XSS保護,並在檢查到XSS攻擊時,停止渲染頁面(例如IE8中,檢查到攻擊時,整個頁面會被一個#替換);

        瀏覽器提供的XSS保護機制並不完美,但是開啟后仍然可以提升攻擊難度,總之沒有特別的理由,不要關閉它。

3、 X-Content-Type-Options

        互聯網上的資源有各種類型,通常瀏覽器會根據響應頭的Content-Type字段來分辨它們的類型。例如:"text/html"代表html文檔,"image/png"是PNG圖片,"text/css"是CSS樣式文檔。然而,有些資源的Content-Type是錯的或者未定義。這時,某些瀏覽器會啟用MIME-sniffing來猜測該資源的類型,解析內容並執行。

例如,我們即使給一個html文檔指定Content-Type為"text/plain",在IE8-中這個文檔依然會被當做html來解析。利用瀏覽器的這個特性,攻擊者甚至可以讓原本應該解析為圖片的請求被解析為JavaScript。通過下面這個響應頭可以禁用瀏覽器的類型猜測行為:

這個響應頭的值只能是nosniff,可用於IE8+和Chrome。

X-Content-Type-Options: nosniff

提示,但啟用這項,X-Content-Type-Options特性,img標簽使用瀏覽器訪問頁面時,圖片不能正常呈現。
因此,必須修改 /conf/web.xml,禁用X-Content-Type-Options特性 ,如下:

<init-param>
<param-name>blockContentTypeSniffingEnabled</param-name>
<param-value>false</param-value>
</init-param>

具體詳見說明:https://www.cnblogs.com/Fooo/p/14301161.html

4.、X-Content-Security-Policy

        這個響應頭主要是用來定義頁面可以加載哪些資源,減少XSS的發生。請參考:https://imququ.com/post/content-security-policy-reference.html

總結:如果使用Tomcat8以上的版本,可以忽略這些配置,8.0以上版本已自帶安全相關配置,如需用到,直接去tomcat/conf/web.xml啟用即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM