xss攻击与防护

1、XSS攻击

Cross Site Scripting跨站脚本攻击前端

利用js和DOM攻击。数据库

盗用cookie,获取敏感信息浏览器

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

劫持前端逻辑服务器

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

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

2、攻击原理和手段

攻击方式分布式

  • 反射性
  • 存储性

一、反射型攻击

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

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

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

二、存储型攻击

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

更隐蔽。

XSS存在的位置

  • 反射型——URL中
  • 存储型——服务器端
  •  

XSS攻击注入点:

  • HTML节点内,经过用户输入动态生成
  • HTML属性,属性是由用户输入
  • JavaScript代码

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

3、防护

一、浏览器自带防护

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

二、编码转义

不能让全部用户输入保持原样

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

用转义字符代替字符。

转义的时机

  • 存储时
  • 显示时

三、过滤

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

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

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

onerror自动触发xss。 

style:body:display:none.

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

iframe引入其它页面资源。

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

三、CSP

CSP: Content Security Policy 

相关文章
相关标签/搜索