Http

有關使用 ASP.NET 和 IIS 的路徑屬性保護 cookie 的資訊

  • June 8, 2017

我需要幫助來保護我的 Web 應用程序的 cookie。它部署在 IIS 中並在 ASP.NET MVC 中建構。這些是我需要獲得更多資訊的事情

  1. IIS 管理器中的站點文件夾也是虛擬目錄嗎?
  2. 如果 Sites 不是虛擬目錄,則 a. 如果網站直接部署在 IIS 管理器的 Sites 文件夾下,那麼對於同一 Sites 文件夾下的其他不安全應用程序是否真的容易受到攻擊?或 b。只有在虛擬目錄的情況下才會是漏洞嗎?
  3. 預設情況下,所有 cookie 的路徑屬性都以“/”作為其值指向根目錄。它是否指向站點下 Web 應用程序的層次結構級別,是否會影響其他非安全應用程序?或者它是否僅指向為其創建 cookie 的 Web 應用程序?

看完這篇文章,我提出了以上問題。只需在頁面上查找路徑屬性。

如果我真的需要設置 cookie 路徑,那麼還有一件事,它們是使用我的 Web 應用程序自動生成的,例如會話 ID、防偽令牌。所以我不能在它們上設置 Path 屬性,因為我不是通過 HttpCookie 對象創建它們的。

我試圖通過Google搜尋盡可能多地收集清楚的解釋,但很難弄清楚流程。

在 IIS 管理器中,“站點”既不是虛擬目錄,也不是“文件夾”。它是一個節點。在它下面是 IIS 中定義的所有單個網站。僅此一項就沒有傳達有關 cookie 是否可以跨站點共享的具體資訊。

瀏覽器決定哪些 cookie 將與哪個請求一起發送,它並不關心您如何在 IIS 中定義站點,或者可能存在於這些站點下的虛擬目錄……它只關心特定請求的屬性,以及它儲存的 cookie 集的屬性,並通過將請求的屬性與 cookie 的屬性進行比較,它決定發送哪些 cookie。

它可能涉及的一些特定屬性:請求的域或地址、請求的路徑、請求的協議、設置 cookie 的域或地址、cookie 的域屬性、路徑屬性cookie,以及 cookie 上的安全標誌。

這些值可能僅映射到 IIS 中的單個站點,或者當您使用子域設置站點時,它們可能映射到多個站點。所以,沒有一般規則。您必須檢查您的配置以確定哪些站點將匹配任何給定的 cookie 來源。

引用自:https://serverfault.com/questions/854568