gpt4 book ai didi

jquery - 如何保护我的 JsonResult GET 调用?

转载 作者:行者123 更新时间:2023-12-03 23:00:25 25 4
gpt4 key购买 nike

我知道如何使用 MVC 的 AntiForgeryToken 属性及其关联的 HTML 帮助程序来帮助 XSRF 保护我的应用程序的表单 POST。

对于实现 GET 的 JsonResults 可以做类似的事情吗?

例如,我的 View 包含一个 onSubmit jQuery 调用,如下所示:

$.getJSON("/allowActivity/YesOrNo/" + someFormValue, "{}", function(data) {
if(data.Allow) {
//Do something.
}
});

我想确保此 JsonResult 只能从预期页面调用。

编辑:

我找到了this post类似的问题,没有具体答案。

确保我的 GET(非破坏性)URL 仅由我自己页面的 AJAX 调用使用的最简单方法是什么?

最佳答案

您可以将 AntiForgeryToken 与一些自定义逻辑结合使用。在服务器上创建 AntiForgery token 的过程是相同的,但默认情况下该值不包含在您的 XmlHttpRequest 中。

此 token 的值位于仅 HTTP 的 cookie“__RequestVerificationToken”中,并且也应该位于发布到服务器的表单数据中。因此,请在 XmlHttpRequest 中包含键/值对,并在 Controller 上使用 ValidateAntiForgeryToken - 属性

编辑:

今天我尝试使用 AntiForgeryToken 来处理 Ajax 请求,效果很好。只需使用以下 JavaScript:

$.post('my_url',  $.getAntiForgeryTokenString(), function() { ... });

$.getAntiForgeryTokenString = function() {
return $(document.getElementsByName("__RequestVerificationToken")).fieldSerialize();
};

在服务器端,您不必更改代码 - 只需使用 ValidateAntiForgeryToken- 属性进行操作即可。

希望这有帮助

关于jquery - 如何保护我的 JsonResult GET 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com