.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();
    }
}
相关推荐
ccut 第一混4 小时前
c# 调用basler 相机
c#·halcon·basler
TomCode先生4 小时前
c#动态树形表达式详解
开发语言·c#
Suckerbin8 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
李白你好9 小时前
CyberPoC 是一个现代化的网络安全练习和竞赛平台,支持容器化部署的安全挑战,为用户提供实践网络安全技能的环境。
web安全
上位机付工13 小时前
C#与倍福TwinCAT3进行ADS通信
开发语言·c#
心 一14 小时前
Web安全基石:深入理解与防御SQL注入漏洞
sql·安全·web安全
土了个豆子的14 小时前
02.继承MonoBehaviour的单例模式基类
开发语言·visualstudio·单例模式·c#·里氏替换原则
疯狂的维修14 小时前
c#中public类比博图
c#·自动化
土了个豆子的17 小时前
03.缓存池
开发语言·前端·缓存·visualstudio·c#
KKKlucifer18 小时前
网络安全等级保护:等级保护工作、分级保护工作、密码管理工作三者之间的关系
网络·安全·web安全