摘要:在本文中,我將介紹常用的安全頭信息設置,并給出一個示例。響應頭指定了該響應的資源是否被允許與給定的共享。示例指定可以送達的域名,默認為當前域名不包含子域名只有在協議時才會被發送到服務端。
在本文中,我將介紹常用的安全頭信息設置,并給出一個示例。在本文的最后,我將介紹用于常見應用程序和web服務器的安全頭信息示例設置。
Content-Security-Policy內容安全策略(CSP)常用來通過指定允許加載哪些資源來防止跨站點腳本攻擊。在接下來所介紹的所有安全頭信息中,CSP 可能是創建和維護花費時間最多的而且也是最容易出問題的。在配置你的網站 CSP 過程中,要小心徹底地測試它,因為阻止某些資源有可能會破壞你的網站的功能。
功能CSP 的主要目標是減少和報告 XSS 攻擊, XSS 攻擊利用了瀏覽器對于從服務器所獲取的內容的信任。使得惡意腳本有可能在用戶的瀏覽器中執行,因為瀏覽器信任其內容來源,即使有時候這些腳本并非來自該站點的服務器當中。
CSP 通過指定允許瀏覽器加載和執行那些資源,使服務器管理者有能力減少或消除 XSS 攻擊的可能性。 一個 CSP 兼容的瀏覽器將會僅執行從白名單域獲取得到的腳本文件,忽略所有其他的腳本(包括內聯腳本)。
示例一個最佳的 CSP 可能是下面這樣(注釋按照配置值的順序),在站點包含的每一部分資源請求相關都加入域名限制。
# 所有的內容(比如: JavaScript,image,css,fonts,ajax request, frams, html5 Media等)均來自和站點的同一個源(不包括其子域名) # 允許加載當前源的圖片和特定源圖片 # 不允許 objects(比如 Flash 和 Java) # 僅允許當前源的腳本下載和執行 # 僅允許當前源的 CSS 文件下載和執行 # 僅允許當前源的 frames # 限制標簽中的 URL 與當前站點同源 # 僅允許表單提交到當前站點 Content-Security-Policy: default-src "self"; img-src "self" https://img.com; object-src "none"; script-src "self"; style-src "self"; frame-ancestors "self"; base-uri "self"; form-action "self";
關于 CSP 更加詳細的介紹可以看 https://content-security-poli...
Strict-Transport-SecurityStrict-Transport-Security(HSTS) 告訴瀏覽器該站點只能通過 HTTPS 訪問,如果使用了子域,也建議對任何該站點的子域強制執行此操作。
功能一個站點如果接受了一個 HTTP 請求,然后跳轉到 HTTPS,用戶可能在開始跳轉前,通過沒有加密的方式和服務器對話。這樣就存在中間人攻擊的潛在威脅,跳轉過程可能被惡意網站利用來直接接觸用戶信息,而不是原來的加密信息。
網站通過HTTP Strict Transport Security通知瀏覽器,這個網站禁止使用HTTP方式加載,瀏覽器應該自動把所有嘗試使用HTTP的請求自動替換為HTTPS請求。
示例# 瀏覽器接受到這個請求后的 3600 秒內的時間,凡是訪問這個域名下的請求都是用https請求 # 指定 includeSubDomains 此規則適用該站點下的所有子域名 Strict-Transport-Security: max-age=3600; includeSubDomainsX-Content-Type-Options
X-Content-Type-Options 響應頭相當于一個提示標志,被服務器用戶提示瀏覽器一定要遵循 Content-Type 頭中 MIME 類型的設定,而不能對其進行修改。
功能它減少了瀏覽器可能“猜測”某些內容不正確的意外應用程序行為,例如當開發人員將一個頁面標記為“HTML”,但瀏覽器認為它看起來像JavaScript并試圖將其呈現為JavaScript時。這個頭將確保瀏覽器始終按照服務器設置的MIME類型來解析。
示例X-Content-Type-Options: nosniffCache-Control
Cache-Control 通用消息頭字段,被用于在 http 請求和響應中,通過指定指令來實現緩存機制。緩存指令是單向的,這意味著在請求中設置的指令,不一定被包含在響應中。
功能這一個比其他的稍微復雜一些,因為你可能需要針對不同的內容類型使用不同的緩存策略。
任何包含有敏感信息的網頁,例如用戶個人信息頁面或客戶結帳頁面,都應該設置為 no-cache。原因是防止共享計算機上的某人按下后退按鈕或瀏覽歷史并查看個人信息。
示例Cache-Control: no-cacheX-Frame-Options
X-Frame-Options 響應頭是用來給瀏覽器指示允許一個頁面可否在 ,
功能如果惡意的站點將你的網頁嵌入到 iframe 標簽中, 在你不知道的情況下打開并點擊惡意網站的某個按鈕,惡意網站能夠執行一個攻擊通過運行一些 JavaScript 將捕獲點擊事件到 iframe 中,然后代表你與網站交互。
將 X-Frame-Options 設置為 deny 可以禁止該頁面在任何域中的 ifram 標簽中展示。
X-Frame-Options 設置可以由 CSP 的 frame-ancestors 配置所代替。
示例X-Frame-Options: DENY # 表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。 X-Frame-Options: SAMEORIGIN # 表示該頁面可以在相同域名頁面的 frame 中展示。 X-Frame-Options: ALLOW-FROM uri # 表示該頁面可以在指定來源的 frame 中展示。Access-Control-Allow-Origin
Access-Control-Allow-Origin 響應頭指定了該響應的資源是否被允許與給定的 origin 共享。
功能可以被用來可解決瀏覽器的跨域請求。
比如一個站點 A 頁面中發起一個 AJAX 請求到 站點 B, A B 不同源。正常情況下因為瀏覽器的同源策略將不會把 B 的響應結果返回給 A, 除非 B 在響應頭中設置允許 A 站點發起請求。
示例Access-Control-Allow-Origin: * # 允許所有域請求 Access-Control-Allow-Origin: http://someone.com # 允許特定域請求Set-Cookie
Set-Cookie 響應頭被用來由服務器端向客戶端發送 cookie。
示例# domain: 指定 cookie 可以送達的域名,默認為當前域名(不包含子域名) # Secure: 只有在 https 協議時才會被發送到服務端。然而,保密或敏感信息永遠不要在 HTTP cookie 中存儲或傳輸,因為整個機制從本質上來說都是不安全的 # HttpOnly: cookie 不能使用 JavaScript代碼獲取到 Set-Cookie:X-XSS-Protection= ; Domain= ; Secure; HttpOnly
X-XSS-Protection 響應頭是Internet Explorer,Chrome和Safari的一個功能,當檢測到跨站腳本攻擊 (XSS)時,瀏覽器將停止加載頁面。
示例X-XSS-Protection: 1; mode=block # 啟用XSS過濾。如果檢測到 XSS 攻擊,瀏覽器將不會清除頁面,而是阻止頁面加載。總結
設置 HTTP 頭信息是相對快速和簡單的對于網站的數據保護、XSS 攻擊和點擊劫持等攻擊。有針對性的設置這些頭信息,你的網站的安全性將會有不錯的提高。
面試題查看原文
關注github每日一道面試題詳解
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106348.html
摘要:而如果跨域請求是從腳本里面發出去的,由于腳本具有高度靈活性,瀏覽器出于安全考慮,會根據同源策略來限制它的功能,使得正常情況下,腳本只能請求同源的資源。反之,則稱為跨域請求,需要遵守機制。非簡單跨域請求在發出請 原文發布于我的博客:https://blog.serenader.me/htt... 自從我接觸前端以來,接手的項目里面很大部分都是前后端分離的,后端只提供接口,前端根據后端...
摘要:狀態行通過提供一個狀態碼來說明所請求的資源情況。請求出現語法錯誤。服務器端暫時無法處理請求可能是過載或維護。 全端工程師需知道的計算機網絡知識 一、網絡篇—http報文詳解 1. 分類 請求報文 響應報文 2. 報文結構 (一)、請求報文 一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成; 請求行 由請求方法字段、UR...
摘要:狀態行通過提供一個狀態碼來說明所請求的資源情況。請求出現語法錯誤。服務器端暫時無法處理請求可能是過載或維護。 全端工程師需知道的計算機網絡知識 一、網絡篇—http報文詳解 1. 分類 請求報文 響應報文 2. 報文結構 (一)、請求報文 一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成; 請求行 由請求方法字段、UR...
閱讀 3208·2023-04-26 01:30
閱讀 671·2021-11-08 13:15
閱讀 1791·2021-09-24 10:35
閱讀 1005·2021-09-22 15:41
閱讀 1932·2019-08-30 15:44
閱讀 597·2019-08-30 13:22
閱讀 1011·2019-08-30 13:06
閱讀 1203·2019-08-29 13:22