Web安全攻防之XSS基础基本概念和基本思想

1 简介与对比

XSS攻击可以分为三种

  1. 反射型:一次性、通过邮件传播、需要经过服务器
  2. Dom 型(文档对象模型,Document Object Model):一次性、不需经过服务器(不发送消息)
  3. 存储型:持久性、通常出现在留言板中、通常是处于信任的链接中(熟悉的论坛网站)

反射型和存储型都需要向外部发送信息,经过服务器后传回,而 DOM 型由本地的浏览器进行解析执行。

区别反射型和 DOM 型最简单的检验方法就是「Burp 抓包」,如果 Burp 抓到数据就是反射型,抓不到数据就是DOM型。(面试时童童师傅教的

DOM 型和反射型通常都是攻击者构造 URL,存储型则是构造 Payload 测试网站的输入点。

  • DOM型:数据=>客户端
  • 反射型:数据=>服务器=>客户端
  • 存储型:数据=>服务器=>数据库=>客户端

2 防御XSS

XSS 的修复分为输入和输出两部分。通过过滤将输入的恶意代码拦截到外面(类似乘飞机的安检)。在输出时也必须要留意,否则过去输入的恶意代码可能也会造成 XSS。

  1. 过滤’、“、<、>、on*等非法字符。
  2. 输出的到页面的数据,需要进行HTML实体编码、Javascript编码。

3 基本思想

  • XSS的存在,一定伴随着输入与输出这两个概念(所以在防御时需要输入过滤、输出编码来进行防御)。在输出时不太方便过滤,如果是文章中写了3<5,被过滤后就只有3 5,故在输出时常用编码防御,而不是过滤。
  • XSS和SQL注入类似,都是文本被当作代码执行,不同点在于XSS的代码执行在客户端,SQL注入的代码执行在服务器端。

猜你喜欢

转载自blog.csdn.net/qq_43085611/article/details/113246985