HTTP - 安全性



HTTP 用於網際網路通訊,因此應用程式開發人員、資訊提供者和使用者應該瞭解 HTTP/1.1 中的安全限制。本文不會提供此處提及問題的最終解決方案,但會提出一些降低安全風險的建議。

個人資訊洩露

HTTP 客戶端通常會接觸到大量個人資訊,例如使用者的姓名、位置、郵件地址、密碼、加密金鑰等。因此,您應該非常小心,防止透過 HTTP 協議意外洩露這些資訊到其他來源。

  • 所有機密資訊都應以加密形式儲存在伺服器上。

  • 洩露伺服器的特定軟體版本可能會使伺服器機器更容易受到針對已知包含安全漏洞的軟體的攻擊。

  • 充當網路防火牆門戶的代理伺服器應特別注意識別防火牆後面主機的頭部資訊的傳輸。

  • 在“發件人”欄位中傳送的資訊可能會與使用者的隱私權益或其網站的安全策略衝突,因此,不應在使用者能夠停用、啟用和修改欄位內容的情況下傳輸該資訊。

  • 如果引用頁面是使用安全協議傳輸的,則客戶端不應在(非安全)HTTP 請求中包含 Referer 首部欄位。

  • 使用 HTTP 協議的服務的作者不應將基於 GET 的表單用於提交敏感資料,因為這會導致資料在 Request-URI 中進行編碼。

基於檔案和路徑名的攻擊

文件應僅限於 HTTP 請求返回的文件,這些文件僅為伺服器管理員所預期。

例如,UNIX、Microsoft Windows 和其他作業系統使用'..'作為路徑元件來指示高於當前目錄的目錄級別。在這樣的系統上,如果 HTTP 伺服器允許訪問 HTTP 伺服器以外的資源,則 HTTP 伺服器必須不允許 Request-URI 中存在任何此類結構。

DNS 欺騙

使用 HTTP 的客戶端嚴重依賴域名服務,因此通常容易受到基於 IP 地址和 DNS 名稱故意錯誤關聯的安全攻擊。因此,客戶端需要謹慎假設 IP 號碼/DNS 名稱關聯的持續有效性。

如果 HTTP 客戶端快取主機名查詢的結果以提高效能,則它們必須遵守 DNS 報告的 TTL 資訊。如果 HTTP 客戶端不遵守此規則,則當先前訪問的伺服器的 IP 地址更改時,它們可能會被欺騙。

位置標頭和欺騙

如果單個伺服器支援多個互不信任的組織,則它必須檢查在所述組織控制下生成的響應中的 Location 和 Content Location 標頭的值,以確保它們不會嘗試使它們無權訪問的資源無效。

身份驗證憑據

現有的 HTTP 客戶端和使用者代理通常會無限期地保留身份驗證資訊。HTTP/1.1 沒有提供伺服器指示客戶端丟棄這些快取的憑據的方法,這是一個很大的安全風險。

針對此問題的一部分,有一些變通方法,因此建議使用螢幕保護程式中的密碼保護、空閒超時和其他緩解此問題固有安全問題的方法。

代理和快取

HTTP 代理是中間人,代表中間人攻擊的機會。代理可以訪問與安全相關的資訊、有關個體使用者和組織的個人資訊以及屬於使用者和內容提供商的專有資訊。

代理運營商應像保護任何包含或傳輸敏感資訊的系統一樣保護執行代理的系統。

快取代理提供額外的潛在漏洞,因為快取的內容代表了惡意利用的有吸引力的目標。因此,應將快取內容保護為敏感資訊。

廣告
© . All rights reserved.