.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();
    }
}
相关推荐
加号328 分钟前
【C#】 实现程序最小化后重新拉起并强制置顶显示的技术指南
开发语言·c#
wangl_9232 分钟前
C# / .NET 在工业环境中的优势
开发语言·c#·.net·.netcore·.net core·visual studio
祀爱33 分钟前
ASP.NET Core使用log4net的详细流程
c#
上海云盾第一敬业销售35 分钟前
深度解析:CDN网络安全架构与实践
安全·web安全·架构
祀爱36 分钟前
ASP.NET Core 集成NLog详细教程
数据库·后端·asp.net
如君愿43 分钟前
考研复习 Day 36 | 习题--计算机网络 第七章 网络安全(下)、数据结构 排序算法(下)
计算机网络·考研·web安全
光泽雨11 小时前
c#中的“跨界找人”
c#
yuan1999712 小时前
基于 C# 实现的 Omron HostLink (FINS) 协议 PLC 通讯
开发语言·c#
火星papa13 小时前
C# 任务(Task)的基础实现
c#·任务·task