CSRF 攻击是什么?如何防范?

1. 什么是 CSRF 攻击

跨站请求伪造,利用用户在特定网站上的登录状态。诱导用户在不知情的情况下执行攻击者预定的一些操作。

简单来说,就是攻击者通过受害者浏览器发送一个恶意请求到已经登录的网站。由于浏览器会自动携带这个网站的 cookie 认证信息。网站误认为请求是用户自己发起的。从而执行恶意的操作。比如转账、修改密码、发布内容等。这个就是 CSRF 攻击。

2. 如何防范?

2.1 使用 token

在表单或 ajax 请求中加入一次性 token,服务器在接受请求后,除了验证 cookie 外,还会验证这个 token 是否有效和未被使用过。

2.2 验证 referer

服务端验证请求头中的 referer 字段,referer 字段代表请求发送的站点。

2.3 二次确认

对于敏感操作,要求用户二次确认。比如转账,可以让用户在转账前,再次输入密码或验证码确认。

2.4 使用安全矿建或库

像 VUE 或 React 等都是内置了防止这种攻击的机制。我们需要充分利用它的这个安全特性。

2.5 限制 API 访问接口

对于 API 接口使用 API 密钥,对请求进行一些合法性的管理,确保接口调用来至授权的这个地址。

相关推荐
hxjhnct27 分钟前
JavaScript Promise 的常用API
开发语言·前端·javascript
web小白成长日记36 分钟前
前端让我明显感受到了信息闭塞的恐怖......
前端·javascript·css·react.js·前端框架·html
GIS之路1 小时前
GDAL 实现创建几何对象
前端
liulilittle1 小时前
CLANG 交叉编译
linux·服务器·开发语言·前端·c++
步步为营DotNet2 小时前
深深度探索.NET 中HttpClient的复用策略:提升性能与稳定性的关键度解析.NET 中IServiceCollection:构建可扩展服务体系的关键
java·网络·.net
自信阿杜2 小时前
跨标签页数据同步完全指南:如何选择最优通信方案
前端·javascript
牛马1112 小时前
WidgetsFlutterBinding.ensureInitialized()在 Flutter Web 端启动流程的影响
java·前端·flutter
Captaincc2 小时前
2025: The year in LLMs
前端·vibecoding
草根站起来2 小时前
ip的ssl证书
网络·tcp/ip·ssl
ipooipoo11882 小时前
详解动态住宅 IP 代理:核心定义、优势及典型应用场景(跨境 / 爬虫必备)
网络·爬虫·网络协议·tcp/ip