面试题之 CSRF 攻击

简介: 定义 跨站点请求伪造(Cross-Site Request Forgeries),在用户不知情的情况下,冒充用户发起请求, 完成一些违背用户意愿的事情,比如修改用户信息,删评论等(如果找到 XSS 漏

定义

  • 跨站点请求伪造(Cross-Site Request Forgeries),在用户不知情的情况下,冒充用户发起请求, 完成一些违背用户意愿的事情,比如修改用户信息,删评论等(如果找到 XSS 漏洞,可以用一些 JS 去借用用户的身份去发出请求)或者是伪造请求完成服务器的一些 CURD 操作
  • CSRF 可以说是钓鱼网站的应用,常见于用户的 cookie 被利用

触发方式

写一个钓鱼网站

  1. 里面放上一个 img 标签,设置为不可见,src 属性设置为有 CSRF 漏洞的接口,当用户访问这个钓鱼网站的时候浏览器会根据 img 标签请求 src 中的 url

防御方式

  1. 验证码;强制用户必须与应用进行交互,才能完成最终请求。
  2. 尽量使用 post ,限制 get 请求;get 很容易被拿来做 csrf 攻击;
  3. 通过 header 中的 referer 字段,做请求来源限制,设置只能由特定页面调用接口,能够防止自己伪造请求的 CSRF,也可以防止通过用户自身发出伪造请求的 CSRF,此种方法成本最低,但是并不能保证 100% 有效,因为服务器并不是什么时候都能取到 Referer,而且低版本的浏览器存在伪造 Referer 的风险
  4. 其实抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,所以现在大多数的方案是使用的 token,token 的防御机制是公认最合适的方案

token 原理

使用 token 的原理:

  1. 第一步:后端随机产生一个 token,把这个token 保存到后端的这个 session 状态中;同时后端把这个token 发给前端页面;
  2. 第二步:前端页面提交请求时,把 token 加入到请求体 body 或者自定义 HTTP 请求头里面,比如 Authorization,一起传给后端,这个 token 是不能放在 cookie 里面,放在 cookie 里面就有可能被黑客利用,就失去了用 token 的意义
  3. 后端验证前端传来的 token 与 session 是否一致,一致则合法,否则是非法请求,没有就是伪造的
相关文章
|
8月前
|
安全 网络协议 网络安全
网安面试指南——(渗透,攻击,防御)
网安面试指南——(渗透,攻击,防御)
179 2
|
8月前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
134 0
|
8月前
|
存储 JSON 前端开发
【面试题】XSS攻击是什么?
【面试题】XSS攻击是什么?
107 0
|
8月前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
1017 0
|
2月前
|
安全 前端开发 JavaScript
什么是 CSRF 攻击?如何启用 CSRF 保护来抵御该攻击?
什么是 CSRF 攻击?如何启用 CSRF 保护来抵御该攻击?
85 5
|
2月前
|
存储 Web App开发 安全
如何防范 CSRF 攻击
CSRF(跨站请求伪造)攻击是一种常见的安全威胁。防范措施包括:使用Anti-CSRF Token、检查HTTP Referer、限制Cookie作用域、采用双重提交Cookie机制等,确保请求的合法性与安全性。
|
2月前
|
网络安全 数据安全/隐私保护
什么是 CSRF 攻击
CSRF(跨站请求伪造)攻击是指攻击者诱导用户点击恶意链接或提交表单,利用用户已登录的身份在目标网站上执行非授权操作,如转账、修改密码等。这种攻击通常通过嵌入恶意代码或链接实现。
|
2月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
105 4
|
2月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
90 2
|
2月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
107 3