Web 开发的安全之旅 | 青训营笔记

60 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第11天。

一、本堂课重点内容

  • 攻击篇
  • 防御篇

二、详细知识点介绍

1、攻击篇

XSS

  • 通常难以从UI上感知
  • 窃取用户信息(cookie/token)
  • 绘制UI,诱骗用户点击/填写表单

Stored XSS

  • 恶意脚本被存在数据库中
  • 访问页面->读数据=被攻击
  • 危害最大,对全部用户可见

Reflected XSS

  • 不涉及数据库
  • 从URL上攻击

DOM-based XSS

  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器完成

Mutation-based XSS

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器,会有区别(按浏览器进行攻击)

Cross-site request forgery(CSRF)

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定 HTTP 请求,窃取或修改用户敏感信息

2、防御篇

XSS

  • 永远不信任用户提交的内容
  • 不要将用户提交的内容直接转换成DOM
同源策略SOP

协议,域名,端口号

内容安全策略CSP

寻找安全源执行

CSRF防御
  • 异常请求来源,限制请求;服务器接收过的页面
  • token和用户绑定,过期
  • iframe——X-Fream-Options: DENY
  • GET!=GET+POST
  • SameSite Cookie 限制domain Cookie
Injection
  • 找到查询SQL的地方,使用prepared ststement
  • beyondSQL:最小权限,建立白名单,过滤操作( -rm )
防御DoS
  • × /(ab*)+/
  • 禁用正则
  • code review
  • 流量治理
  • 抗量、扩容
传输层
  • HTTPS协议
  • 数字签名
  • SRI

三、课后个人总结

本节课学习了web开发的攻击方式以及防御,在写代码的时候需要注意。

四、引用参考

bytedance.feishu.cn/file/boxcn9…