前端安全

CSRF(跨站请求伪造)

攻击原理

CSRF攻击原理.png

当用户成功登录网站A后,网站A下发cookie并保存在浏览器中。当用户访问网站B时网页中存在引诱用户点击的内容(一般是一个链接,指向网站A的一个API接口),当用户点击该引诱内容时,会访问网站A的API接口获取到网站A的数据。

防御措施

  • Token验证
  • Referer验证
  • 隐藏令牌

XSS(跨域脚本攻击)

攻击原理

恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

攻击方式

反射型

发出请求时,XSS代码出现在URL中,作为输出提交到服务端,服务端解析响应后,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。

储存型

存储型XSS和反射型XSS的差别仅在于提交的代码会存储在服务端,下次 请求目标页面是不用再次提交XSS代码。

防御措施

  • 编码:
    • 对用户输入的数据进行HTML Entity编码
  • 过滤:
    • 移除用户上传的DOM属性,如onerror等
    • 移除用户上传的Style节点、Script节点、Iframe节点等
  • 校正
    • 避免直接对HTML Entity解码
    • 使用DOM Parse解码,校正不配对的DOM标签

你可能感兴趣的:(前端安全)