add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options: nosniff;
add_header Content-Security-Policy "default-src 'self' ";
add_header X-Xss-Protection 1;
X-Frame-Options
X-Frame-Options HTTP 響應(yīng)頭是用來給瀏覽器指示允許一個(gè)頁面可否在 <frame>, <iframe> 或者 <object> 中展現(xiàn)的標(biāo)記。網(wǎng)站可以使用此功能,來確保自己網(wǎng)站的內(nèi)容沒有被嵌到別人的網(wǎng)站中去,也從而避免了點(diǎn)擊劫持 (clickjacking) 的攻擊。
X-Frame-Options 有三個(gè)值:
DENY
表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。
SAMEORIGIN
表示該頁面可以在相同域名頁面的 frame 中展示。
ALLOW-FROM uri
表示該頁面可以在指定來源的 frame 中展示。
換一句話說,如果設(shè)置為 DENY,不光在別人的網(wǎng)站 frame 嵌入時(shí)會(huì)無法加載,在同域名頁面中同樣會(huì)無法加載。另一方面,如果設(shè)置為 SAMEORIGIN,那么頁面就可以在同域名頁面的 frame 中嵌套。
X-Content-Type-Options
用來指定瀏覽器對(duì)未指定或錯(cuò)誤指定 Content-Type 資源真正類型的猜測行為,nosniff 表示不允許任何猜測,互聯(lián)網(wǎng)上的資源有各種類型,通常瀏覽器會(huì)根據(jù)響應(yīng)頭的Content-Type字段來分辨它們的類型。例如:"text/html"代表html文檔,"image/png"是PNG圖片,"text/css"是CSS樣式文檔。然而,有些資源的Content-Type是錯(cuò)的或者未定義。這時(shí),某些瀏覽器會(huì)啟用MIME-sniffing來猜測該資源的類型,解析內(nèi)容并執(zhí)行。
Content-Security-Policy
主要是用來定義頁面可以加載哪些資源,減少 XSS 的發(fā)生。
具體介紹
https://imququ.com/post/content-security-policy-reference.html
X-Xss-Protection
顧名思義,這個(gè)響應(yīng)頭是用來防范XSS的。最早我是在介紹IE8的文章里看到這個(gè),現(xiàn)在主流瀏覽器都支持,并且默認(rèn)都開啟了XSS保護(hù),用這個(gè)header可以關(guān)閉它。它有幾種配置:
0:禁用XSS保護(hù);
1:啟用XSS保護(hù);
1; mode=block:啟用XSS保護(hù),并在檢查到XSS攻擊時(shí),停止渲染頁面(例如IE8中,檢查到攻擊時(shí),整個(gè)頁面會(huì)被一個(gè)#替換);
瀏覽器提供的XSS保護(hù)機(jī)制并不完美,但是開啟后仍然可以提升攻擊難度,總之沒有特別的理由,不要關(guān)閉它。
參考
https://imququ.com/post/web-security-and-response-header.html
https://imququ.com/post/content-security-policy-reference.html