一些安全相关的HTTP响应头
HTTP Strict Transport Security,簡稱為HSTS。它允許一個HTTPS網(wǎng)站,要求瀏覽器總是通過HTTPS來訪問它。現(xiàn)階段,除了Chrome瀏覽器,Firefox4+,以及Firefox的NoScript擴展都支持這個響應(yīng)頭。
我們知道HTTPS相對于HTTP有更好的安全性,而很多HTTPS網(wǎng)站,也可以通過HTTP來訪問。開發(fā)人員的失誤或者用戶主動輸入地址,都有可能導(dǎo)致用戶以HTTP訪問網(wǎng)站,降低了安全性。一般,我們會通過Web Server發(fā)送301/302重定向來解決這個問題。現(xiàn)在有了HSTS,可以讓瀏覽器幫你做這個跳轉(zhuǎn),省一次HTTP請求。另外,瀏覽器本地替換可以保證只會發(fā)送HTTPS請求,避免被劫持。
要使用HSTS,只需要在你的HTTPS網(wǎng)站響應(yīng)頭中,加入下面這行:
strict-transport-security: max-age=16070400; includeSubDomains
includeSubDomains是可選的,用來指定是否作用于子域名。支持HSTS的瀏覽器遇到這個響應(yīng)頭,會把當前網(wǎng)站加入HSTS列表,然后在max-age指定的秒數(shù)內(nèi),當前網(wǎng)站所有請求都會被重定向為https。即使用戶主動輸入http://或者不輸入?yún)f(xié)議部分,都將重定向到https://地址。
Chrome內(nèi)置了一個HSTS列表,默認包含Google、Paypal、Twitter、Linode等等服務(wù)。我們也可以在Chrome輸入chrome://net-internals/#hsts,進入HSTS管理界面。在這個頁面,你可以增加/刪除/查詢HSTS記錄。例如,你想一直以https訪問某網(wǎng)址,通過“add Domain”加上去就好了。查看Chrome內(nèi)置的全部HSTS列表,或者想把自己的網(wǎng)站加入這個列表,請點這里。
X-Frame-Options SAMEORIGIN;允許同源的域名嵌入iframe
Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://a.disquscdn.com; img-src 'self' data: https://www.google-analytics.com; style-src 'self' 'unsafe-inline'; frame-src https://disqus.com”; 指定可以加載的資源,主要用于防止css攻擊
X-Content-Type-Options: nosniff 互聯(lián)網(wǎng)上的資源有各種類型,通常瀏覽器會根據(jù)響應(yīng)頭的Content-Type字段來分辨它們的類型。例如:"text/html"代表html文檔,"image/png"是PNG圖片,"text/css"是CSS樣式文檔。然而,有些資源的Content-Type是錯的或者未定義。這時,某些瀏覽器會啟用MIME-sniffing來猜測該資源的類型,解析內(nèi)容并執(zhí)行。例如,我們即使給一個html文檔指定Content-Type為"text/plain",在IE8-中這個文檔依然會被當做html來解析。利用瀏覽器的這個特性,攻擊者甚至可以讓原本應(yīng)該解析為圖片的請求被解析為JavaScript。通過上面這個響應(yīng)頭可以禁用瀏覽器的類型猜測行為。
x-xss-protection: "1; mode=block" 顧名思義,這個響應(yīng)頭是用來防范XSS的。最早我是在介紹IE8的文章里看到這個,現(xiàn)在主流瀏覽器都支持,并且默認都開啟了XSS保護,用這個header可以關(guān)閉它。它有幾種配置:
- 0:禁用XSS保護;
- 1:啟用XSS保護;
- 1; mode=block:啟用XSS保護,并在檢查到XSS攻擊時,停止渲染頁面(例如IE8中,檢查到攻擊時,整個頁面會被一個#替換);
瀏覽器提供的XSS保護機制并不完美,但是開啟后仍然可以提升攻擊難度,總之沒有特別的理由,不要關(guān)閉它。
server_tokens off;隱藏服務(wù)器版本號
轉(zhuǎn)載于:https://www.cnblogs.com/hike2008/p/5825868.html
總結(jié)
以上是生活随笔為你收集整理的一些安全相关的HTTP响应头的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10系统的mac地址怎么查 查找w
- 下一篇: 怎么安装nvidia控制面板 安装NVI