网络与安全 · 单选题 · 第 33 题
前端与全栈开发面试 · 第 33 题
下列措施中,能有效防御 CSRF(跨站请求伪造)的是?
- A给 Cookie 设置 HttpOnly,禁止页面中的脚本读取 Cookie 的内容
- B把所有修改数据的接口都改成 GET 请求,方便浏览器缓存请求结果
- C前端提交表单之前,先用 Base64 把参数编码一遍,然后再发送出去
- DCookie 设置 SameSite=Lax 或 Strict,并对写操作校验 CSRF Token
答案
D D. Cookie 设置 SameSite=Lax 或 Strict,并对写操作校验 CSRF Token
解析
CSRF 利用的是浏览器会自动携带 Cookie,攻击者并不需要读到 Cookie,所以 HttpOnly 防不了它。SameSite 限制跨站请求携带 Cookie;CSRF Token 放在页面或请求头里,第三方站点拿不到。校验 Origin、Referer 头也是常用手段。写操作用 GET 反而让一个图片链接就能发起攻击。