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