xss攻击与防御

时间:2023-03-09 07:44:58
xss攻击与防御

一、XSS攻击

Cross Site Scripting跨站脚本攻击

利用js和DOM攻击。

盗用cookie,获取敏感信息

破坏正常页面结构,插入恶意内容(广告..)

劫持前端逻辑

DDos攻击效果——分布式拒绝服务攻击

Server Limit Dos,Http header过长,server返回400

xss攻击与防御

二、攻击原理和手段

攻击方式

  • 反射性
  • 存储性

1、反射型攻击

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

  • 明文URL中value就是攻击代码
  • 服务器解析URL中XSS代码并传回
  • 浏览器解析执行

传播-》URL传播-》短网址传播

2、存储型攻击

存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

更隐蔽。

XSS存在的位置

  • 反射型——URL中
  • 存储型——服务器端
  • xss攻击与防御

XSS攻击注入点:

  • HTML节点内,通过用户输入动态生成
  • HTML属性,属性是由用户输入
  • xss攻击与防御
  • xss攻击与防御
  • JavaScript代码

xss攻击与防御

  • 富文本(一大段HTML,有格式)
    •   富文本得保留HTML,HTML有XSS攻击风险

三、防御

1、浏览器自带防御

ctx.set('X-Xss-Protection',0); 反射型参数出现在HTML内容或属性中。

2、编码转义

不能让所有用户输入保持原样。

对用户输入的数据进行HTML Entity编码。

xss攻击与防御

用转义字符代替字符。

xss攻击与防御

转义的时机

  • 存储时
  • 显示时

3、过滤

编码后显示时候还要解码。解码后显示原样代码前过滤。

过滤掉不合法输入,保证安全。

  • 移除用户上传的DOM属性,如onerror等。
  • 移除用户上传的Style节点,Script节点,Iframe节点等。

onerror自动触发xss。

style:body:display:none.

js对页面有百分比操作权限。

iframe引入其它页面资源。

通过xss注入的方式,引诱用户触发csrf攻击。

3、CSP

CSP: Content Security Policy