FrankKai / FrankKai.github.io

FE blog

Home Page:https://frankkai.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

前端安全笔记

FrankKai opened this issue · comments

XSS(跨站脚本攻击 Cross Site Scripting)

攻击

  • 分类:存储型、反射型、DOM型
  • DOM API注入:innerHTML(v-html),outerHTML,document.write(),
  • js API注入: 内联监听器,eval(),setTimeout,setInterval

防范

  • 输入过滤并且转义
  • XSS攻击字符串,XSS漏洞检测工具
  • 避免原生API使用模板引擎,避免内联事件,避免拼接HTML
  • 包含敏感数据的cookie通过服务端做写入,httpOnly;event isTrusted属性
  • 验证码(手机端是一个沙盒,很难进行窃取)、图形验证、手势验证、人脸识别等等

CSRF(跨站请求伪造 Cross Site Request Forgery)

攻击

  • 构造一个恶意的伪造请求并诱导用户触发(可以是跳转链接手动触发,也可以是执行脚本自动触发)
  • GET类型是对url参数做修改;POST类型伪造一个hidden的input表单

防范

  • 浏览器同源策略CORS(Referrer和Origin)
  • 加token(md5加密,md5加salt)
  • sameSite cookie(限制较为严格)
  • 包含敏感数据的cookie通过服务端做写入,httpOnly;event isTrusted属性