WEB前后端漏洞分析与防御技巧--第一部分

文章目录

  • WEB前后端漏洞分析与防御技巧--第一部分
  • 第一章 前端XSS
    • XSS攻击注入点
    • HTML节点内容和属性的防御
    • JavaScript代码的防御
    • 富文本的防御
    • CSP(Content Security Policy)
    • XSS防御总结
  • 第二章 前端CSRF
    • CSRF攻击危害
    • CSFR攻击防御
    • 不访问A网站前端
    • referer为B网站
  • 第三章 前端Cookies问题
    • Cookies特性
    • Cookies作用
    • Cookies-登录用户凭证
      • 设置用户凭证的方法
    • Cookies和XSS的关系
    • Cookies和CSRF的关系
    • Cookies-安全策略
  • 第四章 前端点击劫持问题
    • 点击劫持防御

WEB前后端漏洞分析与防御技巧–第一部分

第一章 前端XSS

XSS攻击分类
WEB前后端漏洞分析与防御技巧--第一部分_第1张图片

XSS攻击注入点

  1. HTML节点内容
  2. HTML属性
  3. JavaScript代码
  4. 富文本

浏览器自带防御:header中增加X-XSS-Protection:1。非常有限的手段,此方案只能防御出现在html内容或属性中的反射性XSS。

HTML节点内容和属性的防御

WEB前后端漏洞分析与防御技巧--第一部分_第2张图片

JavaScript代码的防御

WEB前后端漏洞分析与防御技巧--第一部分_第3张图片
转义相关字符:
WEB前后端漏洞分析与防御技巧--第一部分_第4张图片
注意:上面的方法并不保险,推荐直接使用json.Encode等方法将JS代码转义为json格式

富文本的防御

按白名单保留部分标签和属性

CSP(Content Security Policy)

  1. 内容安全策略
  2. 用于指定哪些内容可执行
ctx.set(`Content-Security-Policy`, `default-src 'self'`)

XSS防御总结

  1. 内置函数转义
  2. DOM解析白名单
  3. 第三方库,node的xss库等
  4. CSP

第二章 前端CSRF

Cross Site Request Forgy(跨站请求伪造)
WEB前后端漏洞分析与防御技巧--第一部分_第5张图片

CSRF攻击危害

  1. 利用用户登录态
  2. 用户不知情
  3. 完成业务请求
  4. 盗取用户资金
  5. 冒充用户发帖
  6. 损坏网站名誉

CSFR攻击防御

WEB前后端漏洞分析与防御技巧--第一部分_第6张图片

  1. 禁止第三方网站带Cookies
    • same-site属性(目前支持的浏览器很少)
      WEB前后端漏洞分析与防御技巧--第一部分_第7张图片

不访问A网站前端

  1. 在前端页面加入验证信息
  2. 验证码(前后端都需要改造)
    1. 因为攻击者无法知道验证码的内容,所以可以保证安全
  3. token
    1. 后端在cookies中设置token,并在前端提交表单的页面的隐藏域中存储提交表单需要带上的token,然后在后端校验此token是否和cookies中的一致。由于CSRF攻击者不了解cookie中token字段具体的值,可以很大程度上防止CSRF攻击。

referer为B网站

  1. 验证referer
  2. 禁止来自第三方网站的请求
    WEB前后端漏洞分析与防御技巧--第一部分_第8张图片
    注意:这里验证referer时在正则表达式中需要加上"^http://xxxxxx.com/",最后的这个斜杠一定不能少,以免其他网站申请”http://xxxxxx.com.attack/“这样的域名去进行攻击

第三章 前端Cookies问题

Cookies特性

  1. 前端数据存储
  2. 后端通过http头设置
  3. 请求时通过http头传给后端
  4. 前端可读写
  5. 遵守同源策略

Cookies作用

  1. 存储个性化设置
  2. 存储未登录时用户唯一标识
  3. 存储已登录用户的凭证
  4. 存储其他业务数据

Cookies-登录用户凭证

  1. 前端提交用户名密码
  2. 后端验证用户名密码
  3. 后端通过http头设置用户凭证
  4. 后续访问时后端先验证用户凭证

设置用户凭证的方法

  1. 用户ID (不安全)
  2. 用户ID + 签名 (防篡改)
  3. SessionId (推荐,注意:这里也可以使用SessionId+签名的方式预防CSRF攻击,此时使用此签名作为token)

Cookies和XSS的关系

  1. xss可能偷取Cookies
  2. http-only的Cookies不会被偷

Cookies和CSRF的关系

  1. CSRF利用了目标的cookies
  2. 攻击站点无法读写Cookies
  3. 最好能阻止第三方使用Cookies(same-site,但是目前兼容的浏览器不多)

Cookies-安全策略

  1. 签名防篡改

  2. 私有变换(加密),避免cookie篡改和信息泄露

    1. 加密:WEB前后端漏洞分析与防御技巧--第一部分_第9张图片
    2. 解密:私有变换(加密)-解密
  3. http-only(防止XSS)

  4. secure(仅在https中使用,防止传输过程中的窃听)

  5. same-site

第四章 前端点击劫持问题

  1. 用户亲手操作
  2. 用户不知情
  3. 盗取用户资金(转账,消费)
  4. 获取用户敏感信息

点击劫持防御

攻击原理:使用iframe内嵌其他网站,并将透明度设为0,然后附在其他网站中,引诱用户点击

  1. JavaScript禁止内嵌(不能100%解决,使用sandbox就不行了)
  2. X-FRAME-OPTIONS(HTTP头)禁止内嵌(推荐,支持IE8以上)
  3. 其他辅助手段(例如验证码等)

你可能感兴趣的:(安全运维)