问题标签 [antiforgerytoken]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在非认证场景中使用 MVC3 AntiForgeryToken?
通过几个线程,我可以看到在用户未经身份验证的站点区域使用 MVC 防伪令牌是过度杀伤力。
我有一个应用程序从site1、site2、site3 等向mysite.com 发布一些信息。每个站点都有一个唯一标识符,该标识符通过异步Javascript POST 在POST 请求中发送。在 site1-3 上执行的 Javascript 在 mysite.com 上生成,然后返回到填充了一些 Javascript 变量的站点。
所以生命周期如下:
- site1 上的页面有对 mysite.com 的 Javascript 引用。
- 该链接引用指向生成 Javascript 以返回到 site1 的控制器路由。
- 返回的 JS 末尾包含一个 POST 请求,该请求返回到 mysite.com,其中包含 URL、浏览器等,以及 site1 上页面访问者的详细信息。
我可以从 JS POST 请求的接受控制器中很好地读取 POST 参数,但是,我想知道是否将防伪令牌添加到参数列表中是否有任何意义。
如果是这样,我将不得不在初始请求中生成它,并将其作为返回给 site1 的 JS 中的 JS 变量传回,然后在第二个请求中将其与表单 POST 一起传回。
由于只有在找到有效帐户时才会在 mysite.com 上进行任何处理,因此进行此操作有什么意义吗?
如果是这样,我将如何在控制器级别生成防伪令牌?
asp.net-mvc-2 - 防伪令牌错误
我有一个为 .NET 3.5 构建的 mvc2 项目。我有一个在 4.0 中编写的库,3.5 项目需要它,所以我更改了目标框架,现在更改了它抛出的防伪令牌:
视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。
我发现了这个问题,但没有任何建议。我在我的配置中创建了一个静态机器密钥,但它没有帮助。任何人都知道可能是什么问题。我不明白为什么它以前工作得很好。
c# - 如何测试我的 wasp.net MVC 3 网站是否受到 CSRF 攻击的保护
我在所有接受用户输入的视图中使用 Anti forgery token html 帮助程序,并在相关操作方法上使用 [ValidateAntiForgeryToken] 以防止任何可能的 CSRF 攻击。但是我面临一个问题,即如何测试这些代码行是否运行良好,它们将防止任何可能的攻击。BR
c# - 什么错误可能导致错误:未提供所需的防伪令牌或无效
我的问题与这个问题非常相似:AntiForgery Exception: A required anti-forgery token is not provided or is invalid but I have the MVC3 and I using Razor installed.
控制器有
指定的
在 html 中 <input name="__RequestVerificationToken"...
使用@Html.AntiForgeryToken()
我还观察到,如果我在浏览器中删除 Authorization cookie,并且控制器方法没有,[Authorize]
我对 AntiForery 没有任何问题。为什么?
asp.net-mvc - AntiForgeryToken 登录后无效
我有一个表格,用户无需登录即可发布。但是,如果他的电子邮件被识别,则需要密码。密码表单通过 Ajax 验证,如果成功,则提交主表单。两种形式都需要有效的 AntiForgeryToken。
问题是,作为副产品的密码检查也会让用户登录(来自客户端的要求)。这会使令牌无效,并且无法发送主表单。
我已经尝试以编程方式生成一个新令牌,但我无法让它工作。
关于如何解决这个问题的任何想法?
最终解决方案
我发现这个问题有助于输入反思。然而,这也是为什么在正常情况下你会避免破解内部类型的主要原因,是这些类型在版本之间的程序集之间进行了很多处理。正如 Betty 建议的那样,使用 ILSpy 查找内容。
这是最终代码。
升级网页 2.0
asp.net-mvc-3 - 所需的防伪令牌未提供或无效
我不知道是什么让这个简单的表单在验证 CSRF 令牌时失败了。我该如何调试呢?
更新
如果我去除盐,它会起作用;奇怪的是它曾经与 Salt 一起使用,我不知道为什么它不再使用了。
c# - 如何在 ajax wcf 服务中使用防伪令牌
我有一个 ASP MVC 网站,它通过 JSON 编码中的 ajax 使用 wcf 服务。是否有任何方法可以将防伪令牌与 ajax <--> wcf 服务一起使用?
这是它在 asp mvc 应用程序中的使用方式。 http://weblogs.asp.net/dixin/archive/2010/05/22/anti-forgery-request-recipes-for-asp-net-mvc-and-ajax.aspx
c# - 登录页面上的防伪令牌
我已经在我的登录页面上实现了防伪令牌。
现在我让一个用户按下键盘上的返回键,当他们在填写凭据后再次单击登录按钮时,他们得到错误页面。
有没有更好的方法来处理这种情况,比如将它们重定向到新的登录页面?
作为登录页面的页面是:/account/logon
如果登录详细信息成功,用户将被重定向到用户按下按钮返回的 :Home/Index 页面。
asp.net-mvc-3 - Asp.Net MVC 3 安全登录
我有整个站点上都有 SSL 的 Asp.Net MVC 3 站点。我在控制器上确实有登录操作,它接受用户名和密码并返回作为用户在 Web 应用程序中调用其他操作的令牌。在后台该操作调用我的 REST api。
如何确保有效用户不会访问我的网站、登录并使用 Fiddler 提取令牌?之后,他将能够使用该令牌调用我的 REST api 来做一些恶意的事情......
asp.net-mvc-3 - 是否可以从非 MVC3 客户端使用 MVC3 AntiForgeryToken(并在 SignalR 集线器中使用它)?
使用 SignalR,在我的 Web 应用程序中,我使用 JavaScript 从客户端调用服务器端方法。Hub 位于 MVC3 项目中,客户端调用来自经典的 ASP 应用程序(因为调用的是 JS,所以它可以是任何其他框架)。
如果我添加 System.Web.MVC 命名空间并使用 [ValidateAntiForgeryToken] 装饰我的集线器方法,我如何使用服务器生成的防伪令牌(类似于我在此处所做的)并将其与客户端请求一起传递?