簡體   English   中英

帶iframe的彈出窗口:一次使用多個@ Html.AntiForgeryToken()

[英]Popup with iframe: Use of multiple @Html.AntiForgeryToken() at once

我有一個頁面,在加載時會使用@Html.AntiForgeryToken()生成一個防偽令牌。 這在布局文件中發生。 該頁面可以打開一個帶有iframe的彈出窗口。此iframe使用@Html.AntiForgeryToken()生成自己的防偽令牌。

在您可以打開彈出窗口的頁面上,用戶可以注銷。 注銷請求包括此頁面加載時生成的防偽令牌。

鑒於我這樣做:

  • 加載可以打開彈出窗口的頁面(生成防偽令牌)
  • 使用iframe打開彈出窗口(iframe中會生成一個新的防偽令牌)
  • 從我可以打開彈出窗口的頁面注銷

注銷成功。 這是為什么? 新令牌不會取代服務器上的舊令牌嗎? 還是將我驗證過的防偽令牌作為cookie存儲在瀏覽器中,以便在我通過注銷請求傳遞防偽令牌值時,瀏覽器還傳遞與之進行比較的匹配的防偽令牌cookie?

我在ASP.NET 4.5.2和MVC 5.2.3上。

好像它保存在cookie中。 不是來自.NET Core的文章,盡管它可能以相同的方式工作。

ASP.NET Web Stack運行時使用同步器令牌模式的變體來防御XSRF攻擊。 同步器令牌模式的一般形式是將兩個反XSRF令牌與每個HTTP POST(除了身份驗證令牌)一起提交給服務器:一個令牌作為cookie,另一個令牌作為表單值。 由ASP.NET運行時生成的令牌值不能被攻擊者確定或預測。 提交令牌后,服務器將僅在兩個令牌均通過比較檢查后才允許請求繼續進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM