Web 开发安全 - 攻击篇 | 青训营笔记

106 阅读3分钟

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

一、本节课重点内容

在网络时代下,Web 安全随处可见并且危害极大,Web 安全问题也越来越受到重视。 而本节课,基于此网络背景,本节课将从安全问题中「攻击者」的角色出发,讲解目前存在哪些技术手段将危害到 Web 安全。

课程重点内容如下所示:

  1. Cross-Site Scripting(XSS)
  2. Cross-site request forgery(CSRF)
  3. Injection
  4. Denial of Service(DoS)
  5. Distributed DoS(DDoS)
  6. 中间人攻击

二、详细知识点介绍

image.png 现代社会,网络安全对于我们的网络社交、游戏等活动非常重要,但在各处都能发现网络的安全隐患,这些漏洞对于我们来说有可能会危害到个人隐私、公司利益等方面。

本节课,我们要从两个角度看web安全:

●假如你是一个hacker——攻击

●假如你是一个开发者——防御

攻击:

用户在浏览我们的页面的时候,浏览器、设备可能会被一些恶意的脚本攻击。 image.png xss主要利用了两个方面: image.png 作为开发者,我们盲目的信任用户提交的内容;

作为前端工程师,我们直接把用户提交的字符串转化成了DOM;

XSS的特点:

  1. 通常难以从UI上感知(暗地执行脚本)
  2. 窃取用户信息(cookie/token)
  3. 绘制UI (例如弹窗)
  4. 诱骗用户点击/填写表单

示例: image.png 分为两个阶段,读取数据与提交数据都没有被过滤信息,所以很容易被窃取信息, image.png 可以恶意提交脚本,对信息进行编辑,类似插入、删除的数据修改。 Stored XSS

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

Reflected特点:

  1. 不涉及数据库
  2. 从URL.上攻击 image.png 访问页面的时候会遇到攻击。

DOM-based XSS特点

  1. 不需要服务器的参与
  2. 恶意攻击的发起+执行,全在浏览器完成 image.png 访问页面的时候会遇到攻击。

反射与dom的不同之处:脚本注入的地方不一样。 image.png

Mutation-based XSS特点

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

Cross-site request forgery(CSRF)

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

image.png image.png ①读取请求字段

②直接以字符串的形式拼接SQL语句

image.png image.png

image.png Logical DoS特点

  1. 耗时的同步操作
  2. 数据库写入
  3. SQL join
  4. 文件备份
  5. 循环执行逻辑

image.png image.png 传输层攻击方式。

总结

一切安全问题都体现在“输入输出”上,一切安全问题都存在“数据流”的整个过程中。