.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();
    }
}
相关推荐
宝桥南山36 分钟前
GitHub Models - 尝试一下使用GitHub Models
microsoft·ai·微软·c#·github·.netcore
钟智强2 小时前
潜伏 9 年的 Linux 核弹级漏洞:CopyFail CVE-2026-31431
linux·数据库·web安全
hixiong1233 小时前
C# OpenvinoSharp部署INSID3
开发语言·人工智能·ai·c#·openvinosharp
蜡笔小新拯救世界4 小时前
部分安全笔记总结
linux·网络·web安全
星辰徐哥4 小时前
Unity C#入门:变量的定义与访问权限(public/private)
unity·c#·lucene
薪火铺子4 小时前
常见Web安全漏洞防护
安全·web安全
leoufung4 小时前
LeetCode 30:Substring with Concatenation of All Words 题解(含 C 语言 uthash 实现)
c语言·leetcode·c#
hacker7075 小时前
Visual Studio安装教程(C#开发版)
ide·c#·visual studio
SKY -dada5 小时前
Understand 使用教程
开发语言·c#·流程图·软件构建·敏捷流程·代码复审·源代码管理
Chockmans5 小时前
春秋云境CVE-2015-6522
安全·web安全·网络安全·网络攻击模型·安全威胁分析·春秋云境·cve-2015-6522