摘要:由于安全問題一直是重中之重,這里整理下的安全配置。文章大部分參考了及,更多關(guān)于安全及性能可前往查看。該響應(yīng)頭用于禁止在響應(yīng)中報(bào)文中包含版本信息??梢钥吹娇梢院芎玫慕鉀Q降級攻擊,但是對于生效前的首次請求,依然無法避免被劫持。目前已成功加入。
由于安全問題一直是重中之重,這里整理下 nginx 的安全配置。文章大部分參考了 Best nginx configuration for improved security(and performance). 及 Jerry Qu,更多關(guān)于 HTTP 安全及性能可前往 Jerry Qu 查看。server_tokens
該響應(yīng)頭用于禁止 nginx 在響應(yīng)中報(bào)文中包含版本信息。因?yàn)榫唧w的版本可能會(huì)存在未知 bug。
server_tokens off;X-Frame-Options
該響應(yīng)頭用于是否允許瀏覽器加載 frame、 iframe、 object 等屬性。可以使用該功能來避免 點(diǎn)擊劫持
add_header X-Frame-Options SAMEORIGIN;
該指令用三個(gè)可用的配置
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/
當(dāng)設(shè)置為 DENY 時(shí),站點(diǎn)禁止任何頁面被嵌入。
當(dāng)設(shè)置為 SAMEORIGIN 時(shí),只允許加載同源的 fram/iframe/object。
當(dāng)設(shè)置為 ALLOW-FROM 時(shí),只允許加載指定的源。
X-Content-Type-Options在我們通常的請求響應(yīng)中,瀏覽器會(huì)根據(jù) HTTP 響應(yīng)的 Content-Type 來分辨響應(yīng)的類型。如 text/html 代表 html 文檔。 但當(dāng)響應(yīng)類型未指定或錯(cuò)誤指定時(shí),瀏覽會(huì)嘗試啟用 MIME-sniffing 來猜測資源的響應(yīng)類型。
如通過精心制作一個(gè)圖像文件,并在其中嵌入可以被瀏覽器所展示和執(zhí)行的 HTML 和 JavaScript 代碼。由于未關(guān)閉資源的類型猜測,瀏覽器將直接執(zhí)行嵌入的 JavaScript 代碼,而不是顯示圖片。
add_header X-Content-Type-Options nosniff;
用來指定瀏覽器對未指定或錯(cuò)誤指定 Content-Type 資源真正類型的猜測行為,nosniff 表示不允許任何猜測。(Jerry Qu)
這個(gè)響應(yīng)頭的值只能是 nosniff,可用于 IE8+ 和 Chrome。
X-XSS-Protectionadd_header X-XSS-Protection "1; mode=block";
該響應(yīng)頭是用于防范及過濾 XSS 的??捎玫膸讉€(gè)指令如下:
X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=
說明
0,禁用 XSS 過濾
1,開啟 XSS 過濾
1; mode=block,開啟 XSS 過濾,并且若檢查到 XSS 攻擊,停止渲染頁面。
X-XSS-Protection: 1; report=
該響應(yīng)頭主要用于規(guī)定頁面可以加載那些資源(css/js/img 等)。看一個(gè)簡單的配置
# 定義所有資源文件的默認(rèn)加載規(guī)則為self,表示允許 # 相同來源的內(nèi)容(相同的協(xié)議、域名和端口) add_header Content-Security-Policy: default-src "self";
更多 Content-Security-Policy 的指令及規(guī)則及介紹可參考 Jerry Qu 的 Content Security Policy 介紹。
Strict-Transport-SecurityStrict-Transport-Security,簡稱 HSTS。該響應(yīng)頭用于標(biāo)識(shí)瀏覽器用 HTTPS 替代 HTTP 的方式去訪問目標(biāo)站點(diǎn)。
我們知道 HTTPS 相對于 HTTP 有更好的安全性,而很多 HTTPS 網(wǎng)站,也可以通過 HTTP 來訪問。開發(fā)人員的失誤或者用戶主動(dòng)輸入地址,都有可能導(dǎo)致用戶以 HTTP 訪問網(wǎng)站,降低了安全性。一般,我們會(huì)通過 Web Server 發(fā)送 301/302 重定向來解決這個(gè)問題。 (Jerry Qu)
我們可以使用下面方式啟用 HSTH。
add_header strict-transport-security: max-age=16070400; includeSubDomains;
當(dāng)用戶第一次訪問后,將返回一個(gè)包含了 strict-transport-security 響應(yīng)頭的字段。他將告訴瀏覽器,在接下來的 16070400 秒內(nèi),當(dāng)前網(wǎng)站的所有請求都強(qiáng)制使用 HTTPS 的方式訪問。即使用戶手動(dòng)輸入 http://,瀏覽器也會(huì)強(qiáng)制使用 HTTPS 方式訪問。
參數(shù) includeSubDomains 是可選的,當(dāng)指定了該參數(shù),所有子域名將采用同樣的 HSTS 規(guī)則。
可以看到 HSTS 可以很好的解決 HTTPS 降級攻擊,但是對于 HSTS 生效前的首次 HTTP 請求,依然無法避免被劫持。瀏覽器廠商們?yōu)榱私鉀Q這個(gè)問題,提出了 HSTS Preload List 方案:內(nèi)置一份可以定期更新的列表,對于列表中的域名,即使用戶之前沒有訪問過,也會(huì)使用 HTTPS 協(xié)議。 (Jerry Qu)
如果你想把自己的域名加入這個(gè)列表,可通過 hstspreloa.org 查看是否滿足申請條件。更多關(guān)于 HSTS 的配置,可查看 關(guān)于啟用 HTTPS 的一些經(jīng)驗(yàn)分享。
目前 godruoyi.com 已成功加入 Preload List。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/39888.html
摘要:由于安全問題一直是重中之重,這里整理下的安全配置。文章大部分參考了及,更多關(guān)于安全及性能可前往查看。該響應(yīng)頭用于禁止在響應(yīng)中報(bào)文中包含版本信息。可以看到可以很好的解決降級攻擊,但是對于生效前的首次請求,依然無法避免被劫持。目前已成功加入。 由于安全問題一直是重中之重,這里整理下 nginx 的安全配置。文章大部分參考了 Best nginx configuration for impr...
摘要:本教程將幫助您部署一個(gè)支持的快速,安全的服務(wù)器。該變量告訴對支持協(xié)議的瀏覽器啟用。默認(rèn)情況下,設(shè)置為下劃線,這意味著配置文件負(fù)責(zé)所有傳入的請求。這個(gè)頭部還能保護(hù)我們免受協(xié)議降級攻擊。 原文:How To Set Up Nginx with HTTP/2 Support on Ubuntu 16.04 | DigitalOcean 作者:Sergey Zhukaev showImg(...
摘要:無論是將其用作的服務(wù)器反向代理服務(wù)器負(fù)載均衡器,還是同時(shí)使用以上三種功能,和都能帶來很大好處。再就是下篇文章會(huì)介紹如何把和當(dāng)作反向代理服務(wù)器和多個(gè)應(yīng)用程序服務(wù)器的負(fù)載均衡器。而使用將會(huì)有助于解決這一問題。 【編者按】本文主要介紹 nginx 的主要功能以及如何通過 NGINX 優(yōu)化 Python 應(yīng)用性能。本文系國內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn)。 Python 的著名之...
閱讀 2571·2021-11-22 09:34
閱讀 932·2021-11-19 11:34
閱讀 2801·2021-10-14 09:42
閱讀 1472·2021-09-22 15:27
閱讀 2385·2021-09-07 09:59
閱讀 1731·2021-08-27 13:13
閱讀 3432·2019-08-30 11:21
閱讀 771·2019-08-29 18:35