HTTP用於internet上的通信,因此應用程式開發人員、信息提供者和用戶應該了解HTTP/1.1中的安全限制。本次討論不包括這裡提到的問題的最終解決方案,但它確實爲降低安全風險提出了一些建議。
Personal Information Leakage
HTTP客戶端通常知道大量的個人信息,如用戶名、位置、郵件地址、密碼、加密密鑰等。因此,您應該非常小心,以防止通過HTTP協議將這些信息無意地洩漏給其他源。
所有機密信息應以加密的形式存儲在伺服器上。
揭示伺服器的特定軟體版本可能會使伺服器計算機更容易受到對已知包含安全漏洞的軟體的攻擊。
作爲通過網絡防火牆的入口的代理應採取特殊預防措施,以傳輸標識防火牆後面主機的頭信息。
在「發件人」欄位中發送的信息可能與用戶的隱私利益或其網站的安全策略衝突,因此,在用戶無法禁用、啓用和修改欄位內容的情況下,不應發送該信息。
如果引用頁是使用安全協議傳輸的,則客戶端不應在(非安全的)HTTP請求中包含Referer頭欄位。
使用HTTP協議的服務的作者不應該使用基於GET的表單來提交敏感數據,因爲這將導致數據在請求URI中被編碼。
File and Path Names Based Attack
文檔應限制爲HTTP請求返回的文檔,而僅限於伺服器管理員希望返回的文檔。
例如,UNIX、Microsoft Windows和其他作業系統使用'..'作爲路徑組件來指示當前目錄之上的目錄級別。在這樣的系統上,如果HTTP伺服器允許訪問那些通過HTTP伺服器可以訪問的資源之外的資源,那麼它必須禁止請求URI中的任何此類構造。
DNS Spoofing
使用HTTP的客戶端嚴重依賴域名服務,因此通常容易受到基於故意錯誤關聯IP位址和DNS名稱的安全攻擊。因此,客戶端需要謹慎地假設IP號/DNS名稱關聯的持續有效性。
如果HTTP客戶端緩存主機名查找的結果以實現性能改進,則它們必須遵守DNS報告的TTL信息。如果HTTP客戶端不遵守此規則,則當先前訪問的伺服器的IP位址更改時,可能會欺騙它們。
Location Headers and Spoofing
如果一台伺服器支持多個彼此不信任的組織,那麼它必須檢查在所述組織的控制下生成的響應中的位置和內容位置頭的值,以確保它們不會試圖使它們沒有權限的資源失效。
Authentication Credentials
現有的HTTP客戶端和用戶代理通常無限期地保留身份驗證信息。HTTP/1.1沒有爲伺服器提供方法來指示客戶端丟棄這些緩存的憑據,這是一個很大的安全風險。
這個問題的各個部分有很多解決方法,因此建議在螢幕保護程序、空閒超時和其他方法中使用密碼保護,以減輕這個問題固有的安全問題。
Proxies and Caching
HTTP代理是中間人,代表中間人攻擊的機會。代理可以訪問安全相關信息、個人用戶和組織的個人信息以及屬於用戶和內容提供商的專有信息。
代理運算符應保護運行代理的系統,因爲它們將保護包含或傳輸敏感信息的任何系統。
緩存代理提供了額外的潛在漏洞,因爲緩存的內容表示惡意攻擊的有吸引力的目標。因此,緩存內容應作爲敏感信息進行保護。