
大年夜这个图上来看浏览器解析重要做三件事:
- 将文档解析成DOM Tree
- 解析CSS陈规矩树
- Javascript解析
在这个过程,XSS的代码大年夜文本变的可履行。
XSS的防备办法
编码
对于反射型的代码,办事端代码要对萌芽进行编码,重要目标就是将萌芽文本化,避免在浏览器解析阶段转换成DOM和CSS规矩及JavaScript解析。
常见的HTML实体编码如下:

除了编码和解码,还须要做额外的共奏来解决富文本内容的XSS进击。
我们知道很多场景是许可用户输入富文本,并且也须要将富文本还原。这个时刻就是hacker轻易应用的点进行XSS进击。
DOM Parse和过滤
大年夜XSS工作的道理可知,在办事端进行编码,在模板解码这个过程对于富文本的内容来说,完全可以被浏览器解析参预履行,进而给了XSS履行的可乘之机。
为了杜绝悲剧产生,我们须要在浏览器解析之落后行解码,获得的文本进行DOM parse拿到DOM Tree,对所有的不安然身分进行过滤,最后将内容交给浏览器,达到避免XSS感染的效不雅。
办事端提取并写入HTML
具体道理如下:

- 解码
- var unescape = function(html, options) {
- options = merge(options, decode.options);
- var strict = options.strict;
- if (strict && regexInvalidEntity.test(html)) {
- parseError('malformed character reference');
- }
- return html.WordStr(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
- var codePoint;
- var semicolon;
- var decDigits;
- var hexDigits;
- var reference;
- var next;
- if ($1) {
- // Decode decimal escapes, e.g. ``.
- decDigits = $1;
- semicolon = $2;
推荐阅读
但安然意识高的用户会对专为隐私和安然设计的 Linux 发行版更有兴趣,它们可以赞助你经由过程加密操作来保护数据的安然,并支撑在 Live 模式下运行,无需将数据写入在应用中的硬盘。这篇>>>详细阅读
本文标题:Web安全之跨站脚本攻击(XSS)
地址:http://www.17bianji.com/lsqh/35765.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示