HTTP Header 安全性


HTTP Header to Google
HTTP Header 範例

 

HTTP Header 可視為網站與客戶在連線時的橋溝通梁,也就是遵照 HTTP 的協議,利用 Server 端的參數來告知客戶端瀏覽器需遵守其遊戲規則,你才能跟我進行連線溝通與確認是否繼續進行下一步動作,所以當客戶端發出需求時,Server 端可藉由回應來確認連線的安全性需求。

近來跟客戶討論網站安全性時,常會遇到程式碼修補上的困難,不外乎還需要開發人員的調整及測試時間等問題,其實可以先進行 HTTP Header 的安全性設定。
就如 OWASP TOP 10 與 SANS/CWE TOP 25 所列弱點,常見的 XSS(Cross-Site Scripting)與 CSRF(Cross-Site Requset Forgery)等弱點都可藉由調整 HTTP Header 來達成初步的防禦效果! OWASP 就有針對此發表了相關說明。

HTTP Header 安全設定

 

其中 HPKP 可綁定憑證,限定客戶端只能使用 Server 提供的憑證來連線,中間若有經過 Proxy或第三方憑證被置換時,連線都會無效!這專門在防範中間人攻擊(Man-in-the-Middle Attack),也就是常會有第三方或駭客想藉由置換憑證來修改或窺看SSL加密的通訊內容,但透過加入 HPKP 的方式,將憑證的資訊綁入 Header,這樣客戶在連線時就可以比對是否為正確的憑證,才能放心的進行安全連線。

X-Frame-Options 可限定網域連線存取,也就是防範釣魚網站或 Clickjacking 等攻擊,藉由限制來源網域是否符合同源政策或是允許的白名單才可進行存取,避免有心人透過 iframe 或蓋台等方式來騙取受害者點擊造假的網站或連結,導致客戶機密資訊被竊取。

其他關於防範 XSS 攻擊的有 Content-Security-Policy 及 X-XSS-Protection,另外在設定 Cookies 時可帶入 Httponly 參數,限制只能透過 HTTP 方式取得 Cookie,若利用 Script 方式會被拒絕,一樣可以達成防禦的效果!

 

利用調整 HTTP Header 的安全性,可謂有事半功倍的成效,但是這終究只是第一線的防禦並只能抵擋部份攻擊,根據資安的縱深防禦理論,須藉由定期的弱點掃描檢視網站,網站伺服器及程式碼持續性的安全性調整及更新,才是網站能長久安全的不二法門。


Related Posts