.Net CSRF 跨站点请求伪造漏洞

问题背景:由于公司需要整改的老系统的漏洞检查,而系统使用的是.Net 4.6.1的框架,无法使用最新的.Net Core官网的文档解决。

解决方法:网上查了很多资料,有用 Referer 过滤器全局过滤请求头,也有用 http请求都带token中验证。最先用了Referer全局过滤伪造的跨域请求域名,发现还是无法通过CSRF检测。最后使用了服务端返回Token给到form前端,后端对Post请求进行校验,发现可以解决问题。

前端代码:

html 复制代码
@using (Html.BeginForm("Index", "Search", FormMethod.Post, new { id = "SearchForm", name = "SearchForm" }))
{
    @Html.AntiForgeryToken()
}

后端代码:

cs 复制代码
public class SearchController   
{     
    [Post]
    [ValidateAntiForgeryToken]
    public ActionResult Index()
    {
        return view();
    }
}
相关推荐
初级代码游戏8 小时前
C#:程序发布的大小控制 裁剪 压缩
c#·.net·dotnet·压缩·大小·发布·裁剪
运筹vivo@9 小时前
攻防世界: fileinclude
web安全
量子物理学11 小时前
Modbus TCP
c#·modbus tcp
人工智能AI技术12 小时前
能用C#开发AI吗?
人工智能·c#
自己的九又四分之三站台15 小时前
6. 简单将原生代码改为流式请求
c#
一叶星殇18 小时前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
运筹vivo@18 小时前
攻防世界: catcat-new
前端·web安全·php
JQLvopkk18 小时前
C#调用Unity实现设备仿真开发浅述
开发语言·unity·c#
小李独爱秋19 小时前
计算机网络经典问题透视:试比较先进先出排队(FIFO)、公平排队(FQ)和加权公平排队(WFQ)的优缺点
服务器·计算机网络·算法·web安全·信息与通信·队列
zxy284722530119 小时前
使用Topshelf部署window后台服务(C#)
c#·安装·topshelf·后台服务