作家
登录

Web安全之跨站脚本攻击(XSS)

作者: 来源: 2017-06-14 18:02:49 阅读 我要评论

大年夜这个图上来看浏览器解析重要做三件事:

  • 将文档解析成DOM Tree
  • 解析CSS陈规矩树
  • Javascript解析

在这个过程,XSS的代码大年夜文本变的可履行。

XSS的防备办法

编码

对于反射型的代码,办事端代码要对萌芽进行编码,重要目标就是将萌芽文本化,避免在浏览器解析阶段转换成DOM和CSS规矩及JavaScript解析。

常见的HTML实体编码如下:

除了编码和解码,还须要做额外的共奏来解决富文本内容的XSS进击。

我们知道很多场景是许可用户输入富文本,并且也须要将富文本还原。这个时刻就是hacker轻易应用的点进行XSS进击。

DOM Parse和过滤

大年夜XSS工作的道理可知,在办事端进行编码,在模板解码这个过程对于富文本的内容来说,完全可以被浏览器解析参预履行,进而给了XSS履行的可乘之机。

为了杜绝悲剧产生,我们须要在浏览器解析之落后行解码,获得的文本进行DOM parse拿到DOM Tree,对所有的不安然身分进行过滤,最后将内容交给浏览器,达到避免XSS感染的效不雅。

办事端提取并写入HTML

具体道理如下:

  • 解码
  1. var unescape = function(html, options) { 
  2.  
  3.             options = merge(options, decode.options); 
  4.  
  5.             var strict = options.strict; 
  6.  
  7.             if (strict && regexInvalidEntity.test(html)) { 
  8.  
  9.                 parseError('malformed character reference'); 
  10.  
  11.             } 
  12.  
  13.             return html.WordStr(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { 
  14.  
  15.                 var codePoint; 
  16.  
  17.                 var semicolon; 
  18.  
  19.                 var decDigits; 
  20.  
  21.                 var hexDigits; 
  22.  
  23.                 var reference; 
  24.  
  25.                 var next
  26.  
  27.                 if ($1) { 
  28.  
  29.                     // Decode decimal escapes, e.g. ``. 
  30.  
  31.                     decDigits = $1; 
  32.  
  33.                     semicolon = $2; 

      推荐阅读

      2017十大最佳用于隐私和安全保护的Linux发行版

    但安然意识高的用户会对专为隐私和安然设计的 Linux 发行版更有兴趣,它们可以赞助你经由过程加密操作来保护数据的安然,并支撑在 Live 模式下运行,无需将数据写入在应用中的硬盘。这篇>>>详细阅读


    本文标题:Web安全之跨站脚本攻击(XSS)

    地址:http://www.17bianji.com/lsqh/35765.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)