.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();
    }
}
相关推荐
.房东的猫2 小时前
ERP(金蝶云星空)开发【安装篇】
c#
fie888910 小时前
基于C#的推箱子小游戏实现
开发语言·c#
.房东的猫10 小时前
ERP(金蝶云星空)开发【业务数据中心创建和注册】
c#
bugcome_com11 小时前
C# 进阶核心知识点汇总|多项目开发 + 委托 + Lambda + 事件一次吃透
c#
迎仔13 小时前
04-网络安全基础:数字世界的防盗门与守卫
网络·安全·web安全
SunflowerCoder13 小时前
基于插件化 + Scriban 模板引擎的高效 HTTP 协议中心设计
http·c#
老百姓懂点AI16 小时前
[网络安全] 自动化渗透测试:智能体来了(西南总部)AI agent指挥官的攻击链构建与AI调度官的靶场编排
人工智能·web安全·自动化
青云计划16 小时前
知光项目用户关系模块
c#·linq
m5655bj17 小时前
使用 C# 修改 PDF 页面尺寸
java·pdf·c#
专注VB编程开发20年17 小时前
c#模仿内置 Socket.Receive(无需 out/ref,直接写回数据)
开发语言·c#