首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >防伪令牌盐的用途是什么?

防伪令牌盐的用途是什么?
EN

Stack Overflow用户
提问于 2009-09-10 00:04:21
回答 1查看 21.8K关注 0票数 17

在ASP.NET MVC1.0中,有一个用于处理跨站点请求伪造安全问题的新功能:

代码语言:javascript
复制
 <%= Html.AntiForgeryToken() %>
[ValidateAntiForgeryToken]
public ViewResult SubmitUpdate()
{
    // ... etc
}

我发现在html表单中生成的令牌在每次呈现新表单时都会发生变化。

我想知道这些令牌是如何生成的?当使用某些软件扫描此站点时,它会报告另一个安全问题:会话已修复。为什么?由于令牌一直在变化,这个问题是怎么来的呢?

还有另一个功能,那就是antiForgeryToken的"salt“,但我真的知道这是用来做什么的,即使我们不使用"salt”来生成令牌,令牌也会一直在变化,那么为什么要有这个功能呢?

EN

回答 1

Stack Overflow用户

发布于 2009-09-10 00:11:23

您已经问了一些不相关的问题:

  1. 我不知道为什么你的安全软件报告‘会话已修复’。尝试阅读report
  2. 防伪令牌附带的文档:

这是用来(假设)验证每个请求是有效的。因此,考虑到有人试图提供指向页面?x=1的链接,如果令牌没有同时传递,请求将被拒绝。此外,它(可以)防止相同项目的重复张贴。如果你点击两次'post‘,令牌可能会改变(每次请求),这种情况将通过如下方式检测到:

代码语言:javascript
复制
Session["nextToken"] = token;
WriteToken(token);

...

if( !Request["nextToken"] == Session["nextToken"] ){
    ...
}

// note: order in code is slightly different, you must take the token
// before regenerating it, obviously

我认为这个术语(它所保护的攻击)现在被称为"CSRF“(跨站点请求伪造)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1402770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档