防止快取中毒

本主題說明使用Microsoft Internet Information Server (IIS)網頁伺服器時,如何防止快取中毒。 快取中毒 ​是一種將快取內容變更為包含相同網站不同頁面的方法。 例如,可以插入HTTP 404 (找不到)錯誤頁面來取代某些良性頁面(例如店面首頁),這可能會導致潛在的拒絕服務(DoS)。 Varnish或Redis已快取惡意頁面URL,因此名稱為​ 頁面快取中毒

這些型別的攻擊可能很難偵測,因為它們不會導致網頁伺服器記錄發生錯誤。

此解決方案適用於下列Commerce版本:

  • 2.0.10和更新版本
  • 2.1.2和更新版本
INFO
本主題適用於有經驗的IIS管理員。

說明

如果IIS伺服器上啟用了URL重寫,並且在請求到達Varnish或Redis快取服務之前變更了以下任何HTTP標頭,則會導致此問題:

  • X-Rewrite-Url
  • X-Original-Url
  • IIS-wasurlrewritten
  • Unencoded-URL
  • Orig-path-info

如果變更這些標頭,則會快取產生的URL和內容,導致潛在的漏洞。

解決方案

我們提供根據Enable_IIS_Rewrites的IIS伺服器設定,移除所有先前標題的值的選項。

  • 如果Enable_IIS_Rewrites設定為0,則會移除標頭的值。
  • 如果Enable_IIS_Rewrites設定為1,則標頭的值將保持不變。
WARNING
如果您將Enable_IIS_Rewrites設為1,則在要求傳至IIS網頁伺服器之前,您不得允許變更前述標頭的值。
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c