簡體   English   中英

使用c#從網站獲取CSRF令牌ID

[英]Obtaining the CSRF Token ID from web site using c#

我遇到必須從網站下載文件的情況。 它是一個受保護的站點(https),並且還需要客戶端證書身份驗證。

我有一個客戶端證書並設法進入。登錄后,當我嘗試下載文件時,無法下載該文件。 反過來,該文件包含帶有csrftoken的html。 如何獲得此令牌ID? 為了下載文件,我需要此令牌。 有人可以分享哪種身份驗證,以及如何使用c#獲得csrf令牌ID。

謝謝

它不是身份驗證。 它的安全性可以防止跨站點請求偽造

該技術是:

  • 任何狀態更改操作都需要安全的隨機令牌(例如CSRF令牌)來防止CSRF攻擊。
  • 每個用戶和每個用戶會話唯一
  • 綁定到單個用戶會話
  • 大隨機值
  • 由密碼安全的隨機數生成器生成
  • 如果通過GET進行狀態更改操作,則CSRF令牌將添加為表單的隱藏字段或URL中的隱藏字段
  • 如果CSRF令牌驗證失敗,服務器將拒絕請求的操作

在您的情況下,工作流程應接近於此:

  1. 客戶端發出請求(通常是HTTP GET )以在其屏幕上查看信息。
  2. 響應HTML在生成的帶有CSRF令牌的Form具有hidden field
  3. 單擊帶有以下數據的按鈕時,客戶端將進行POST :要下載的文件標識和CSRF令牌。
  4. 服務器檢查此令牌對此POST有效。
  5. 服務器將文件叮咬發送到響應流。

因此,如果您想使用C#以編程方式下載文件,我認為您應該像執行webBrowser一樣先執行GET 檢索解析了響應的HTML的CSRF令牌,然后發送POST和文件以及CSRF令牌。

暫無
暫無

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

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