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