1、HTTP strict-transport-security (HSTS)
max-age=16070400;includeSubDomains 嚴格安全傳輸 用來抵禦SSL剝離攻擊 包括子域名
該方式的一些不足
(1)使用者首次通路某網站是不受HSTS保護的。這是因為首次通路時,浏覽器還未收到HSTS,是以仍有可能通過明文HTTP來通路。解決這個不足目前有兩種方案,一是浏覽器預置HSTS域名清單,Google Chrome、Firefox、Internet Explorer和Spartan實作了這一方案。二是将HSTS資訊加入到域名系統記錄中。但這需要保證DNS的安全性,也就是需要部署域名系統安全擴充。截至2014年這一方案沒有大規模部署。
(2)由于HSTS會在一定時間後失效(有效期由max-age指定),是以浏覽器是否強制HSTS政策取決于目前系統時間。部分作業系統經常通過網絡時間協定更新系統時間,如Ubuntu每次連接配接網絡時,OS X Lion每隔9分鐘會自動連接配接時間伺服器。攻擊者可以通過僞造NTP資訊,設定錯誤時間來繞過HSTS。解決方法是認證NTP資訊,或者禁止NTP大幅度增減時間。比如Windows 8每7天更新一次時間,并且要求每次NTP設定的時間與目前時間不得超過15小時。
2、Content-Security-Policy 内容安全政策 default-src ‘self’
該響應頭主要用來定義頁面可以加載哪些資源,減少XSS攻擊
-
限制全局,預設所有都會使用這種規則default-src
-
限制JavaScript的源位址。script-src
-
限制層疊樣式表檔案源。style-src
-
限制圖檔和圖示的源位址img-src
限制規則
(1)default-src ‘self’;隻允許同源下的資源
(2)script-src ‘self’; 隻允許同源下的js
(3)script-src ‘self’ www.xxx.com; 允許同源以及指定位址下的js加載
(4)default-src ‘none’; script-src ‘self’; connect-src ‘self’; img-src ‘self’; style-src ‘self’;
3、X-Content-Type-Options nosniff
nosniff
下面兩種情況的請求将被阻止:
- 請求類型是"
" 但是 MIME 類型不是 "style
",text/css
-
" 但是 MIME 類型不是javascript mime類型script
4、X-XSS-Protection
- 0(禁用XSS過濾器/稽核員)
- 1(删除不安全的部分;如果沒有X-XSS-Protection标題,ie8中是預設設定)
- 1; mode = block(如果找到XSS,則不要渲染文檔)
5、X-Frame-Options
X-Frame-Options SAMEORIGIN; 允許同域嵌套
X-Frame-Options ALLOW-FROM http://XXX.com/;允許單個域名iframe嵌套
X-Frame-Options "ALLOW-FROM http://XXX1. com/,https://XXX2. com/";允許多個域名iframe嵌套,注意這裡是用逗号分隔
6、跨域設定
怎麼才算跨域:
- 請求協定
的不同http,https
- 域
domain
- 端口
port
Access-Control-Allow-Origin(辨別允許哪個域的請求) *
Access-Control-Allow-Credentials:true 意味這将cookie開放給了所有的網站
Access-Control-Allow-Methods 允許的方法通路
Access-Control-Max-Age 傳回結果可以用于緩存的最長時間,機關是秒
Access-Control-Allow-Headers 可支援的請求首部名字。請求頭會列出所有支援的首部清單,用逗号隔開。