Questions tagged «antiforgerytoken»

20
jQuery Ajax调用和Html.AntiForgeryToken()
根据我在互联网上的一些博客文章中所阅读的信息,我已经在我的应用程序中实施了缓解CSRF攻击的措施。这些帖子尤其是我实施的驱动力 来自ASP.NET和Web工具开发人员内容团队的ASP.NET MVC最佳实践 Phil Haack博客的跨站点请求伪造攻击剖析 ASP.NET MVC框架中的AntiForgeryToken- David Hayden博客的Html.AntiForgeryToken和ValidateAntiForgeryToken属性 基本上,这些文章和建议都说,为防止CSRF攻击,任何人都应实施以下代码: 1)[ValidateAntiForgeryToken]在接受POST Http动词的每个动作上添加 [HttpPost] [ValidateAntiForgeryToken] public ActionResult SomeAction( SomeModel model ) { } 2)在<%= Html.AntiForgeryToken() %>将数据提交到服务器的表单内添加帮助程序 <div style="text-align:right; padding: 8px;"> <%= Html.AntiForgeryToken() %> <input type="submit" id="btnSave" value="Save" /> </div> 无论如何,在我的应用程序的某些部分中,我都使用jQuery将Ajax POST进行到服务器,而没有任何形式。例如,在发生这种情况时,我让用户单击图像来执行特定操作。 假设我有一个包含活动列表的表。我在表的列上有一幅图像,上面写着“将活动标记为已完成”,当用户单击该活动时,我正在执行Ajax POST,如以下示例所示: $("a.markAsDone").click(function (event) { event.preventDefault(); $.ajax({ type: "post", dataType: …

13
使用$ .ajax发布JSON数据时,如何提供AntiForgeryToken?
我正在使用下面这篇文章的代码: 首先,我将使用控制器操作的正确值填充数组变量。 使用下面的代码,我认为只需将以下行添加到JavaScript代码中,应该非常简单: data["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val(); 该<%= Html.AntiForgeryToken() %>是在其正确的位置,动作有[ValidateAntiForgeryToken] 但是我的控制器动作一直在说:“无效的伪造令牌” 我在这里做错了什么? 码 data["fiscalyear"] = fiscalyear; data["subgeography"] = $(list).parent().find('input[name=subGeography]').val(); data["territories"] = new Array(); $(items).each(function() { data["territories"].push($(this).find('input[name=territory]').val()); }); if (url != null) { $.ajax( { dataType: 'JSON', contentType: 'application/json; charset=utf-8', url: url, type: 'POST', context: document.body, data: JSON.stringify(data), success: function() { refresh(); …

5
Web API和ValidateAntiForgeryToken
我们有一些现有的MVC Web服务,这些Web服务在网页中称为AJAX样式。这些服务利用ValidateAntiForgeryToken属性来帮助防止请求伪造。 我们正在寻求将这些服务迁移到Web API,但似乎没有等效的防伪功能。 我想念什么吗?是否存在使用Web API解决请求伪造的其他方法?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.