为了账号安全,请及时绑定邮箱和手机立即绑定

jQueryAjax调用和Html.antiForgeryToken()

jQueryAjax调用和Html.antiForgeryToken()

浮云间 2019-07-22 14:41:18
jQueryAjax调用和Html.antiForgeryToken()我已经在我的应用程序中实现了CSRF攻击以下是我在网上的一些博客上看到的信息。特别是,这些职位一直是我实施的驱动因素。ASP.NETMVC的最佳实践来自ASP.NET和Web工具开发人员内容小组一种跨站点请求伪造攻击的剖析菲尔·哈克博客ASP.NETMVC框架中的AntiForgeryToken-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帖子,根本没有任何形式。例如,当我允许用户单击图像来执行特定操作时,就会发生这种情况。假设我有一个列有活动列表的表。表的一个列上有一个图像,上面写着“标记活动为已完成”,当用户单击该活动时,我正在进行Ajax发布,如下面的示例所示:$("a.markAsDone").click(function (event) {     event.preventDefault();     $.ajax({         type: "post",         dataType: "html",         url: $(this).attr("rel"),         data: {},         success: function (response) {             // ....         }     });});如何使用<%= Html.AntiForgeryToken() %>在这种情况下?我应该在Ajax调用的数据参数中包含助手调用吗?很抱歉写了这么长的邮件,非常感谢你的帮助。编辑:按jayrdub答:我用了以下方法$("a.markAsDone").click(function (event) {     event.preventDefault();     $.ajax({         type: "post",         dataType: "html",         url: $(this).attr("rel"),         data: {             AddAntiForgeryToken({}),             id: parseInt($(this).attr("title"))         },         success: function (response) {             // ....         }     });});
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信