HTTP安全

HTTP用於通過Internet進行通信,因此應用程式開發人員,資訊提供者和用戶應該瞭解HTTP/1.1中的安全限制。此討論不包括此處提到的問題的最終解決方案,但它確實提出了一些降低安全風險的建議。

個人資訊洩露

HTTP客戶端通常能知道大量的個人資訊,例如用戶的姓名,位置,郵件地址,密碼,加密密鑰等。因此,作為用戶,您需要非常小心,以防止通過HTTP協議無意中洩露此信息。

  • 所有機密資訊都應以加密形式存儲在伺服器端。
  • 顯示伺服器的特定軟體版本可能會使伺服器機器更容易受到已知包含安全漏洞的軟體的攻擊。
  • 通過網路防火牆充當門戶的代理應該採取特殊的預防措施來傳輸標識防火牆後面的主機的標頭資訊。
  • “表單”字段中發送的資訊可能與用戶的隱私權益或其站點的安全策略衝突。因此,如果用戶無法禁用,啟用和修改字段內容,則不應傳輸它。
  • 如果引用頁面是使用安全協議傳輸的,則客戶端不應在非安全HTTP請求中包含Referer頭字段。
  • 使用HTTP協議的服務的作者不應該使用基於GET的表單來提交敏感數據,因為這將導致這些數據在Request-URI中編碼。

基於檔和路徑名的攻擊

該文檔應限制為HTTP請求返回的文檔,僅限於伺服器管理員預期的文檔。

例如,UNIX,Microsoft Windows和其他操作系統使用..作為路徑組件來指示當前級別之上的目錄級別。在這樣的系統上,HTTP伺服器必須禁止Request-URI中的任何此類構造,否則它將允許訪問那些旨在通過HTTP伺服器訪問的資源之外的資源。

DNS欺騙

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

如果HTTP客戶端緩存主機名查找的結果以實現性能改進,則必須遵守DNS報告的TTL資訊。如果HTTP客戶端不遵守此規則,則在先前訪問的伺服器的IP地址更改時,它們可能會被欺騙。

位置標頭和欺騙

如果單個伺服器支持多個不相互信任的組織,那麼它必須檢查在所述組織控制下生成的回應中的LocationContent-Location標頭的值,以確保它們不會嘗試使資源無效。

身份驗證憑據

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

建議在螢幕保護程式,空閒超時和其他方法中使用密碼保護,以減輕此問題中固有的安全問題。

代理和緩存

HTTP代理是中間人,代表了中間人攻擊的機會。代理可以訪問與安全相關的資訊,個人用戶和組織的個人資訊以及屬於用戶和內容提供商的專有資訊。
代理運營商應該保護代理運行的系統,因為它們會保護包含或傳輸敏感資訊的任何系統。
緩存代理提供了額外的潛在漏洞,因為緩存的內容代表了惡意利用的有吸引力的目標。因此,緩存內容應作為敏感資訊進行保護。


上一篇: HTTP協議基礎 下一篇: HTTPS協議基礎