51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

请解释CSRF攻击的原理,并说明如何利用一个存在CSRF漏洞的Web应用(用户登录后可执行敏感操作,如修改密码或转账)。同时,结合360浏览器或安全卫士中的CSRF防护机制(如SameSite cookie、Referer检查、验证码等),说明如何通过技术手段降低CSRF风险。

360助理安全研究实习生(漏洞挖掘与利用)难度:中等

答案

1) 【一句话结论】

CSRF攻击利用用户已登录的会话状态,通过诱导用户点击恶意链接或表单,绕过服务器验证,执行非授权的敏感操作(如修改密码、转账)。

2) 【原理/概念讲解】

用户登录网站后,浏览器会保存一个session cookie(用于标识用户身份)。攻击者构造一个包含恶意操作(如修改密码、转账)的页面(如HTML链接或表单),当用户点击时,浏览器会自动带上网站A的cookie,向目标网站发送请求。由于请求来自已登录的用户,服务器验证cookie有效后,执行操作。

类比:就像你拿着有效银行卡(登录状态),攻击者给你一个“转账”按钮,你点击后,银行系统会认为是你操作,因为你的卡还在有效期内——攻击者没偷卡,只是让你按了按钮。关键点是攻击者无法窃取cookie,但能诱导用户点击,利用用户已登录的信任。

3) 【对比与适用场景】

攻击类型攻击目标攻击方式依赖条件防护重点
CSRF服务器端诱导用户点击恶意链接/表单用户已登录目标网站验证请求来源(Referer、SameSite、CSRF token)
XSS客户端注入恶意脚本到页面用户访问包含恶意脚本的页面输入验证、输出编码、内容安全策略
请求方法
GET查询操作(如查询账户信息)无请求体,仅URL参数用户点击链接无需特殊防护(但敏感操作禁用GET)
POST修改操作(如修改密码、转账)有请求体,数据在body中用户点击表单必须验证请求来源(如token、Referer)

4) 【示例】

用户登录银行网站后,攻击者构造一个恶意POST表单(用于修改密码):

<form action="https://bank.com/api/change-password" method="POST">
  <input type="hidden" name="new_password" value="hacked123">
  <input type="hidden" name="csrf_token" value="invalid_token"> <!-- 攻击者未获取有效token -->
  <button type="submit">点击修改密码</button>
</form>

用户点击按钮后,浏览器发送POST请求,携带用户登录的session cookie,服务器验证cookie有效后,执行密码更新操作(因服务器未验证csrf_token,导致漏洞)。

5) 【面试口播版答案】

CSRF攻击的核心是利用用户已登录的会话状态,诱导用户在目标网站执行非授权操作。原理上,用户登录后,浏览器会保存session cookie,攻击者构造恶意页面(如链接或表单),用户点击后,浏览器自动带上cookie发送请求,服务器验证通过后执行操作。比如,用户登录银行后,攻击者发送一个修改密码的链接,用户点击后,银行系统会认为是你操作,从而修改密码。防护方面,360浏览器通过SameSite cookie(如设置Strict,仅同源请求携带cookie)、Referer检查(验证请求来源)、以及对于敏感操作添加验证码(如转账时弹出验证码),降低风险。具体来说,SameSite=Strict时,跨站请求不会携带cookie;Referer检查确保请求来自合法来源;敏感操作增加验证码,需要用户二次确认,防止CSRF。

6) 【追问清单】

  • 问:CSRF和XSS有什么区别?如何区分?
    回答要点:CSRF攻击服务器端,利用已登录状态;XSS攻击客户端,注入脚本。CSRF需要用户点击恶意链接,XSS需要用户访问恶意页面。
  • 问:如何检测CSRF漏洞?常用方法有哪些?
    回答要点:手动测试(构造恶意请求)、工具(如Burp Suite的CSRF检测插件)、自动化扫描(如OWASP ZAP)。
  • 问:除了Referer和SameSite,还有哪些CSRF防护技术?比如CSRF token。
    回答要点:CSRF token(在表单中添加随机token,请求时验证)、Synchronizer Token Pattern(同步令牌模式)。
  • 问:为什么Referer检查可能失效?比如代理、浏览器设置?
    回答要点:Referer头可能被篡改(如代理服务器修改)、用户禁用Referer头、跨域请求时Referer可能为空。
  • 问:360浏览器中SameSite cookie的具体实现?比如如何设置?
    回答要点:通过浏览器设置或开发者工具,将敏感cookie的SameSite属性设置为Strict或Lax,限制跨站请求携带cookie。

7) 【常见坑/雷区】

  • 误区1:认为CSRF不需要用户登录状态。实际上,CSRF必须依赖用户已登录的会话。
  • 误区2:仅依赖Referer检查防护CSRF。因为Referer头可能被篡改或禁用,导致防护失效。
  • 误区3:忽略敏感操作(如转账、修改密码)的二次验证。仅靠Referer或SameSite可能不够,需要结合验证码。
  • 误区4:SameSite cookie设置错误。比如设置为None但未配合Secure标志,导致跨站请求仍能携带cookie。
  • 误区5:CSRF token未及时更新。如果token过期或重复使用,攻击者可能利用旧token执行操作。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1