Pet*_*r J 5 asp.net-mvc jquery csrf
我知道如何使用MVC的AntiForgeryToken属性以及它的关联HTML帮助程序来帮助XSRF保护我的应用程序的表单POST.
可以为实现GET的JsonResults做类似的事情吗?
例如,我的View包含一个onSubmit jQuery调用,如下所示:
$.getJSON("/allowActivity/YesOrNo/" + someFormValue, "{}", function(data) {
if(data.Allow) {
//Do something.
}
});
Run Code Online (Sandbox Code Playgroud)
我想确定这个JsonResult只能从目标页面调用.
编辑:
我发现这个帖子关于一个类似的问题,没有具体的答案.
确保我的GET(非破坏性)URL仅由我自己的页面中的AJAX调用消耗的最简单方法是什么?
您可以将AntiForgeryToken与一些自定义逻辑结合使用.在服务器上创建AntiForgery令牌是相同的,但默认情况下,该值不包含在您的XmlHttpRequest中.
此令牌的值位于仅HTTP的cookie"__RequestVerificationToken"中,并且还应该以发布到服务器的表单数据的形式出现.因此,在XmlHttpRequest中包含一个键/值对,并在控制器上使用ValidateAntiForgeryToken - 属性
编辑:
今天我尝试自己使用AntiForgeryToken进行Ajax请求,它运行正常.只需使用以下javascript:
$.post('my_url', $.getAntiForgeryTokenString(), function() { ... });
$.getAntiForgeryTokenString = function() {
return $(document.getElementsByName("__RequestVerificationToken")).fieldSerialize();
};
Run Code Online (Sandbox Code Playgroud)
在服务器端,您不必更改代码 - 只需使用ValidateAntiForgeryToken-属性即可.
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |