在ASP.NET Web表单中防止对Ajax请求的crf攻击

西瓦库马尔

如何在ASP.NET WebForms应用程序中防止对Ajax请求的CSRF攻击

穆拉里·穆鲁格桑

您可以创建一个令牌并将其保存在Session [“ CSRF”]中,并在每个页面的HiddenField中呈现该令牌。

protected HiddenField CSRF { get; set; }

protected void page_load(object s, args[] e) {
    if(Session["CSRF"]!=null) {
        this.CSRF=Session["CSRF"];
    }
    else {
        Session["CSRF"]=Guid.NewGuid().ToString();
        this.CSRF=Session["CSRF"];
    }
}

因此,无论何时发送请求,都将其添加为数据参数,并在服务器端代码中进行检查。

为每个请求传递此CSRF HiddenField id。

对于ASP.Net Ajax调用,您可以使用ViewState["CSRF"],因为默认情况下,更新面板也会发送Page的viewstate :)

用于jQuery ajax

var csrf_token = '<%= csrf_value %>';

以下代码将为所有ajax请求添加此令牌

$("body").bind("ajaxSend", function(elm, xhr, s){
if (s.type == "POST") {
xhr.setRequestHeader('X-CSRF-Token', csrf_token);
}
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止ASP.NET Web表单中的跨站点请求伪造(CSRF)攻击

来自分类Dev

ASP.NET Web表单中的ASP.Net路由

来自分类Dev

如何防止来自ASP.NET Web API中没有cookie的客户端的CSRF攻击?

来自分类Dev

如何防止来自ASP.NET Web API中没有cookie的客户端的CSRF攻击?

来自分类Dev

AJAX Return对象包含asp.net Web表单中的d

来自分类Dev

AJAX Return对象包含asp.net Web表单中的d

来自分类Dev

无法从 ASP.NET Web API 中的 jQuery AJAX 请求获取标头

来自分类Dev

Ajax for asp.net表单视图

来自分类Dev

asp.net MVC中的AJAX DELETE请求

来自分类Dev

asp.net Web表单[WebMethod]

来自分类Dev

在ASP.NET Web表单中创建类似布局的Pinterest

来自分类Dev

使用asp.net中的Web服务的网站登录表单

来自分类Dev

在ASP.NET Web表单中从LocalDB检索数据

来自分类Dev

ASP.NET Web表单中的mysql_fetch_array

来自分类Dev

在ASP.NET Web表单中引用JavaScript文件

来自分类Dev

C#ASP.NET Web表单中的不同表类型

来自分类Dev

ASP.NET Web表单中的mysql_fetch_array

来自分类Dev

ASP.NET多线程Web请求

来自分类Dev

ASP.NET多线程Web请求

来自分类Dev

ASP Net Web Api HttpPost 丢失请求

来自分类Dev

在ASP.NET Web API请求中检测额外的字段

来自分类Dev

接受ASP.NET Web服务中的SOAP请求

来自分类Dev

在ASP.NET Web Api中请求“外来” Api

来自分类Dev

如何在Asp.Net Web应用程序中测试CSRF攻击?

来自分类Dev

如何在Asp.Net Web应用程序中测试CSRF攻击?

来自分类Dev

在没有母版页的情况下抵御ASP.NET Web窗体中的CSRF攻击

来自分类Dev

Asp.net中的GCM请求

来自分类Dev

覆盖ASP .NET Core中的请求对象

来自分类Dev

缓存Asp .Net Web API