C# 使用c从网站获取CSRF令牌ID#

C# 使用c从网站获取CSRF令牌ID#,c#,C#,我有一个情况,我将不得不从网站下载文件。它是一个安全站点(https),还需要客户端证书身份验证 我有客户证书,并设法进入。登录后,当我试图下载该文件时,我无法下载该文件。反过来,该文件包含带有csrftoken的html。如何获取此令牌id?为了下载文件,我需要这个令牌。是否有人可以分享这是哪种身份验证,以及如何使用c#获取csrf令牌id 谢谢这不是身份验证。它的安全需要预防 技术是: 任何状态更改操作都需要安全的随机令牌(例如CSRF 令牌)以防止CSRF攻击 每个用户和每个用户会话唯一

我有一个情况,我将不得不从网站下载文件。它是一个安全站点(https),还需要客户端证书身份验证

我有客户证书,并设法进入。登录后,当我试图下载该文件时,我无法下载该文件。反过来,该文件包含带有csrftoken的html。如何获取此令牌id?为了下载文件,我需要这个令牌。是否有人可以分享这是哪种身份验证,以及如何使用c#获取csrf令牌id


谢谢

这不是身份验证。它的安全需要预防

技术是:

  • 任何状态更改操作都需要安全的随机令牌(例如CSRF 令牌)以防止CSRF攻击
  • 每个用户和每个用户会话唯一
  • 绑定到单个用户会话
  • 大随机值
  • 由加密安全随机数生成器生成
  • CSRF令牌被添加为表单的隐藏字段或URL中的隐藏字段 如果通过GET执行状态更改操作
  • 如果CSRF令牌失败,服务器将拒绝请求的操作 验证
在您的情况下,工作流程应靠近此点:

  • 客户机发出请求(通常是HTTP-GET)以查看其数据库中的信息 屏幕
  • 响应HTML在生成的
    表单
    中有一个
    隐藏字段
    CSRF令牌
  • 当点击包含以下数据的按钮时,客户会发布
    POST
    :文件标识he 想要下载和下载CSRF令牌
  • 服务器检查此令牌是否对此
    POST
    有效
  • 服务器将文件位发送到响应流

  • 因此,如果你想用C语言编程下载一个文件,我认为你应该先做一个
    GET
    ,就像你是一个网络浏览器一样;检索解析响应HTML的CSRF令牌,并发送带有文件和CSRF令牌的
    POST

    这不是身份验证。它的安全需要预防

    技术是:

    • 任何状态更改操作都需要安全的随机令牌(例如CSRF 令牌)以防止CSRF攻击
    • 每个用户和每个用户会话唯一
    • 绑定到单个用户会话
    • 大随机值
    • 由加密安全随机数生成器生成
    • CSRF令牌被添加为表单的隐藏字段或URL中的隐藏字段 如果通过GET执行状态更改操作
    • 如果CSRF令牌失败,服务器将拒绝请求的操作 验证
    在您的情况下,工作流程应靠近此点:

  • 客户机发出请求(通常是HTTP-GET)以查看其数据库中的信息 屏幕
  • 响应HTML在生成的
    表单
    中有一个
    隐藏字段
    CSRF令牌
  • 当点击包含以下数据的按钮时,客户会发布
    POST
    :文件标识he 想要下载和下载CSRF令牌
  • 服务器检查此令牌是否对此
    POST
    有效
  • 服务器将文件位发送到响应流

  • 因此,如果你想用C语言编程下载一个文件,我认为你应该先做一个
    GET
    ,就像你是一个网络浏览器一样;检索解析响应HTML的CSRF令牌,并发送带有文件和CSRF令牌的
    POST

    谢谢jlvaquero。解析html是获得CSRF令牌的唯一方法?我不知道您请求的系统,因此我无法给您答案。我只是根据csrf的一般方式猜测。我是从C#打来的。CSRF令牌作为隐藏字段存在于主体中。我没有在cookies或头中获取此令牌。访问此令牌的唯一方法是从html正文。然后,这似乎是唯一的方法,但在c#中很容易做到。谢谢jlvaquero。解析html是获得CSRF令牌的唯一方法?我不知道您请求的系统,因此我无法给您答案。我只是根据csrf的一般方式猜测。我是从C#打来的。CSRF令牌作为隐藏字段存在于主体中。我没有在cookies或头中获取此令牌。访问此令牌的唯一方法是从html主体。因此,这似乎是唯一的方法,但在c#中很容易做到。