本文于2016年3月完成,發(fā)布在個人博客網(wǎng)站上。 考慮個人博客因某種原因無法修復(fù),于是在博客園安家,之前發(fā)布的文章逐步搬遷過來。
近日項目組對當(dāng)前開發(fā)、維護(hù)的Web系統(tǒng)做了AppScan掃描,掃描的結(jié)果慘不忍睹,問題很多。報告中報到“缺乏HTTP安全頭部”。之前對HTTP協(xié)議的安全頭部了解不多,為了消除AppScan報告中的警告,同時做更多的了解,搜集了一些相關(guān)的資料,于是有了本篇匯總筆記。
HTTP協(xié)議的安全頭部
安全是一個非常大的話題,比如下面提到的HTTP安全頭部,每個都可以使用單獨(dú)的文章來說明和介紹。但Jackie當(dāng)前還處于Web開發(fā)的入門階段,還談不上什么心得體會,先把找到的文章羅列出來吧。
- 4 HTTP SECURITY HEADERS YOU SHOULD ALWAYS BE USING,中文翻譯一,中文翻譯二
- Guidelines for Setting Security Headers,中文版
- 一些安全相關(guān)的HTTP響應(yīng)頭
HTTP Strict Transport Security
- 來自mozilla開發(fā)者網(wǎng)站,HTTP Strict Transport Security
- 來自wikipedia,HTTP Strict Transport Security
- 來自owasp,HTTP Strict Transport Security
- 為什么我們要使用HTTP Strict Transport Security?
對于企業(yè)級Web應(yīng)用,最簡單直接的方法是禁用HTTP訪問方式,全站啟用HTTPS協(xié)議的支持,省事也安全;不過對于大型網(wǎng)站而言,全站啟用HTTPS會帶來其它方面的工作,來自百度運(yùn)維部的相關(guān)總結(jié)值得一看,如下。
- 全站 https 時代的號角 : 大型網(wǎng)站的 https 實(shí)踐系列
- 大型網(wǎng)站的 HTTPS 實(shí)踐(1):HTTPS 協(xié)議和原理
- 大型網(wǎng)站的 HTTPS 實(shí)踐(2):HTTPS 對性能的影響
- 大型網(wǎng)站的 HTTPS 實(shí)踐(3):基于協(xié)議和配置的優(yōu)化
- 大型網(wǎng)站的 HTTPS 實(shí)踐(4):協(xié)議層以外的實(shí)踐
X-Frame-Options
- X-Frame-Options的介紹,中文版
- 使用HTTP 響應(yīng)頭信息中的 X-Frame-Options 屬性防止網(wǎng)頁被Frame
- 點(diǎn)擊劫持(clickjacking)與X-Frame-Options Header
- Overcoming “Display forbidden by X-Frame-Options”,stackoverflow上的帖子,值得一讀
X-Content-Type-Options
- 減少 MIME 類型的安全風(fēng)險
- IE8 Security Part V: Comprehensive Protection
- [Web開發(fā)] IE 如何判斷文件的類型
X-XSS-Protection
- Controlling the XSS Filter
- 利用IE8/9瀏覽器XSS跨站攻擊腳本篩選過濾特性(X-XSS-Protection)
- 一個跨域請求的XSS漏洞再續(xù)
Content-Security-Policy
據(jù)caniuse上查詢到的數(shù)據(jù),IE系列的瀏覽器對CSP支持程度較低;由于我廠的用戶主要還是使用IE系列的瀏覽器,因此暫時不需要啟用支持。
- Content Security Policy Level 2
- W3C中文網(wǎng)站wiki上CSP的詞條
- Content Security Policy Level 2 介紹
- Content Security Policy 介紹
- HTTP 的內(nèi)容安全策略(CSP)
- HTML5安全介紹之內(nèi)容安全策略(CSP)簡介,中文版
- HTTP 的內(nèi)容安全策略(CSP)
如何增加安全頭部
nginx的配置
網(wǎng)上有很多現(xiàn)成的資料,如下內(nèi)容來自keakon的涂鴉館,折騰了一下 nginx 配置
add_header X-Frame-Options SAMEORIGIN; # 只允許本站用 frame 來嵌套
add_header X-Content-Type-Options nosniff; # 禁止嗅探文件類型
add_header X-XSS-Protection "1; mode=block"; # XSS 保護(hù)
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains
Tomcat的配置
大概是在7.0.63版本,Apache Tomcat引入了org.apache.catalina.filters.HttpHeaderSecurityFilter
,用于增加對前述安全頭部的支持,但并不完善;當(dāng)前9.0.X版本中支持如下安全頭部。
- Strict-Transport-Security
- X-Frame-Options
- X-Content-Type-Options
- X-XSS-Protection
如果使用7.0.63版本以后的Tomcat,可以修改$CATALINA_BASE/conf/web.xml
文件,找到并取消如下Filter的配置。
<!--
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
</filter>
-->
<!-- 其它配置 -->
<!--
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
-->
如果使用低于7.0.63版本的Tomcat,可以使用org.apache.catalina.filters.HttpHeaderSecurityFilter
類的最新代碼編譯、打包成擴(kuò)展包,放在$CATALINA_BASE/lib
路徑下;同時在$CATALINA_BASE/conf/web.xml
文件中增加上述配置。文章來源:http://www.zghlxwxcb.cn/news/detail-765353.html
org.apache.catalina.filters.HttpHeaderSecurityFilter
提供了一些擴(kuò)展配置,具體使用方法可以參考Apache Tomcat的官方文檔。文章來源地址http://www.zghlxwxcb.cn/news/detail-765353.html
其它資料
- Can I Use,瀏覽器兼容情況驗證的網(wǎng)站
- 使用HTTP Headers防御WEB攻擊(Part1)
- 使用HTTP Headers防御WEB攻擊(Part2)
- 利用CSP探測網(wǎng)站登陸狀態(tài)(alipay/baidu為例)
- 瀏覽器安全策略說之內(nèi)容安全策略CSP
- web前端利用HSTS(新的Web安全協(xié)議HTTP Strict Transport Security)漏洞的超級Cookie(HSTS Super Cookie)
到了這里,關(guān)于HTTP協(xié)議安全頭部的筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!