- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我认为这是相当简单的事情。 ValidateAntiForgeryToken
是一个过滤器属性,我们可以将其应用于 MVC Controller 上的 post 方法。
它将检查通过调用 @Html.AntiForgeryToken()
帮助程序注入(inject)的隐藏表单字段 __RequestVerificationToken
的值是否与 Http-Cookie 值匹配。奇怪的是它似乎有效但我现在在审查后不明白因为值不匹配:
使用 Google Dev 工具,我在回发到登录表单时得到以下标题。我原以为用红色下划线标出的两个值会匹配,但它们并没有匹配,但一切仍然“有效”。那么,ValidateAntiForgeryToken
如何工作,因为我认为是在服务器上比较的值 - 实际上并不匹配?
最佳答案
html 表单字段中的值与通过查看响应 header 中的 cookie 公开的值不同,因为它们实际上是包含不同数量属性的序列化有效负载。
因此,虽然在 html 表单字段 __RequestVerificationToken 的某处存在请求 token 的值,但也存在所用加密盐的值。
而响应 header 中的 Http-Cookie 可能包含该信息以及其他加密数据,如用户身份数据和角色,所有这些数据都捆绑在一起然后序列化。
这就是为什么它们在使用嗅探工具/查看页面源等的客户端上看起来不同的原因。它们是不同大小的已序列化数据包。 所以我们看到的不是 token ,而是包含 token 的序列化对象。
因此,虽然每个请求参数(__RequestVerificationToken 表单字段和 __RequestVerificationToken cookie)都包含彼此完全匹配的内容,但根据我上传的图片,我们看到的每个参数的可见字符串将有所不同,因为这些字符串不是实际 token ,而是包含 token 的对象的序列化输出。
直到整个请求被发送回服务器并且服务器将我们在上图中看到的这些字符串反序列化为对象,我们才得到一些可以比较匹配的原始属性。
关于c# - ValidateAntiForgeryToken token 有效但不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23986311/
我创建了两个项目,假设是 projectA 和 projectB。 现在在项目 A 中,我创建了以下操作方法。 [HttpPost] [ValidateAntiForgeryToken
我有一个带有 POST 操作的通用 MVC Controller 。该 Controller 用于多个应用程序使用的公共(public)项目。我们正尝试在交错发布过程中添加 CSRF 保护,我们通过
我认为这是相当简单的事情。 ValidateAntiForgeryToken 是一个过滤器属性,我们可以将其应用于 MVC Controller 上的 post 方法。 它将检查通过调用 @Html.
我阅读了一些有关使用 ValidateAntiForgeryToken 来防止 XSRF/CSRF 攻击的文章。然而,我所看到的似乎只与 MVC 有关。 这些是我看过的文章: ValidateAnti
我在一个方法上使用了几个授权过滤器。 [SessionState(SessionStateBehavior.Required)] public class AuthenticationFilterAt
你能解释一下吗ValidateAntiForgeryToken目的并向我展示有关 MVC 4 中的 ValidateAntiForgeryToken 的示例? 我找不到任何解释此属性的示例? 最佳答案
我们一直收到“未提供或无效所需的防伪 token ”。错误,在进一步的调查中,我设法以最简单的形式重现了这个问题——我要么做错了什么,要么这是防伪 token 系统的限制。 无论哪种方式,我都会很感激
安全第一。 MVC 最佳实践建议添加 [ValidateAntiForgeryToken]属性到每个 [HttpPost]行动。 如何在应用程序的一个独特点强制执行此规则? 最佳答案 以下类允许使用
我正在查看 github 中的 SS 代码,但我找不到任何与 ValidateAntiForgeryToken 等效的代码,因为我不想重新发明轮子,我想尽可能多地重用 SS 框架,我认为解决方案可能是
这个问题在这里已经有了答案: ValidateAntiForgeryToken purpose, explanation and example (4 个回答) 7年前关闭。 谁能告诉我那个属性是什么
默认情况下(即通过脚手架)将此过滤器应用于 Login 仅有意义。操作,据我所知,这个 token 在已经与登录 ID 关联时效果最好。与它适用于Login , 如果用户尝试登录两次,我会遇到问题,并
出于安全原因,我更喜欢在我的 baseController 之上添加属性 ValidateAntiForgeryToken,以便所有操作都将受到该属性的影响。 我只想为单个操作禁用该属性。 不为我的
防伪 token 接受盐值。选择盐是否存在任何安全问题,例如 最小长度要求 加密强度高 字母数字和其他字符的混合(例如密码) 此外,客户端可以查看盐值吗?查看源代码,它似乎将盐值添加到 cookie
我刚才试图通过提供防伪 token 来保护 post 方法免受侧脚本攻击,但注意到,在 .Net Core 中还有另一个名为 AutoAntiForgeryToken 的属性。 XML 注释和在线搜索
我有点理解[ValidateAntiForgeryToken] 是如何防止 CSRF 的,我已经通读了 this question ,但我不确定这是否会阻止某人伪造表单帖子的参数。 ItemList
编辑:我尝试了更多的事情..请参阅此问题的结尾以获取更新 我正在尝试通过 AJAX 将一些数据以及 AntiForgeryToken 从 MVC 应用程序中的页面传递到 Controller 。这不是
我读到 POST 被认为是安全的,GET 不安全,我们应该在每个 Controller 的每个操作中实现 [ValidateAntiForgeryToken]。 问题是:使用[POST]时需要使用[V
我已经在一些负载平衡的 Linux 服务器上部署了一个 asp.net 核心应用程序。由于 ValidateAntiForgeryToken 属性失败(如果 POST 没有返回到与生成我的表单的机器相
考虑一个在 [ValidateAntiForgeryToken] 指令中使用 Salt 参数的 ASP.NET MVC 应用程序。 场景是该应用程序将被许多客户使用。在编译时就知道 Salt 并不是非
我previously asked a question regarding this ,得到了interesting answer这让我开始询问更多问题。因此,这是我弄清楚 AJAX 帖子的内部工作
我是一名优秀的程序员,十分优秀!