1. beplay体育能用吗网络安全学院
  2. CSRF.
  3. 令牌

CSRF令牌

在本节中,我们将解释CSRF标记是什么,它们是如何保护的CSRF攻击,以及如何生成和验证CSRF令牌。

什么是csrf令牌?

CSRF令牌是由服务器端应用程序生成的唯一,秘密,不可预测的值,并以这样的方式发送到客户端,使得它所包含在客户端的后续HTTP请求中。当稍后请求进行后,服务器端应用程序验证请求包括预期令牌并拒绝如果令牌丢失或无效拒绝请求。

CSRF令牌可以通过使攻击者无法构建适合于对受害者馈送的完全有效的HTTP请求来防止CSRF攻击。由于攻击者无法确定或预测用户的CSRF令牌的值,因此它们无法使用应用程序兑换请求所需的所有参数来构建请求。

应该如何生成CSRF令牌?

CSRF令牌应包含重要的熵,并强烈不可预测,通常与会话令牌相同的属性。

您应该使用加密强度伪随机数发生器(PRNG),在创建加上静态秘密时与时间戳进行播种。

如果您需要进一步保证超出PRNG的实力,您可以通过将其输出与某些用户特定的熵连接并采取整体结构的强大哈希来生成单个令牌。这为攻击者提供了额外的障碍,他们试图根据向他们发出的样本分析令牌。

如何传输CSRF令牌?

CSRF令牌应被视为秘密并在整个生命周期中以安全的方式处理。通常有效的方法是在使用POST方法提交的HTML形式的隐藏字段中将令牌传输到客户端。然后,令牌将被包含在提交表单时作为请求参数?

<输入类型=“隐藏”名称=“csrf-token”值=“ciwnznlr4xbisjf39i8ywnwx9wwx4wfoz”/>

为了额外的安全性,应尽早在HTML文档中尽早放置包含CSRF令牌的字段,理想情况下,在任何非隐藏的输入字段和用户可控数据嵌入HTML中的任何位置之前。这种缓解攻击者可以使用制备数据来操纵HTML文档并捕获其内容的各种技术。

将令牌放入URL查询字符串的替代方法,这有点不太安全,因为查询字符串:

  • 记录在客户端和服务器端的各个位置;
  • 易于在HTTP推荐标题中传输到第三方;和
  • 可以在用户的​​浏览器中屏幕显示。

某些应用程序在自定义请求标头中传输CSRF令牌。这提出了对管理预测或捕获另一个用户令牌的攻击者的进一步防御,因为浏览器通常不会允许发送跨域的自定义标题。但是,该方法限制了应用程序以使CSRF保护的请求使用XHR(与HTML表格相反),并且可能被视为许多情况过于复杂。

CSRF令牌不应在Cookie中传输。

CSRF令牌应该如何验证?

生成CSRF令牌时,它应该在用户的会话数据中存储服务器端。当接收到需要验证的后续请求时,服务器端应用程序应验证该请求包括令牌,该令牌与存储在用户会话中的值匹配。无论请求的HTTP方法或内容类型如何,都必须执行此验证。如果请求根本不包含任何令牌,则应以与存在无效令牌的方式相同的方式拒绝。

免费注册以跟踪您的学习进度

通过Portswiggigger的Web安全学院工作的好处beplay官网可以赌beplay体育能用吗
  • 练习利用现实目标的漏洞。

  • 将您的进度从学徒记录到专家。

  • 看看你在我们的名声中排名的地方。

已经有了一个帐户?在此登录