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啟用即可。