繁体   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