web安全1

2018-02-26  本文已影响12人  simonbaker

xss

类型

Dom Based Xss、反射型Xss和存储型Xss

攻击

获取cookie
基本是配合csrf一起来攻击

防御

编码:html和js编码

编码

'严'.length===1//true
'𠮷'.length===1//false --为什么??--因为'𠮷'在js的编码是”\ud842\udfb7″,而js认为每16位(2字节)即表示一个字符,所以'𠮷'是占2个字符的。
js是UCS-2编码,只能显示unicode的基本面字符,辅助平面的字符,则需要用utf-16来显示。

第一个Unicode平面(码位从U+0000至U+FFFF)包含了最常用的字符,该平面被称为基本多语言平面(Basic Multilingual Plane),缩写为BMP。其他平面称为辅助平面(Supplementary Planes)。

'严'.charCodeAt(0).toString(16)//"4e25"
'严'.charCodeAt(1).toString(16)//"NaN"
'𠮷'.charCodeAt(0).toString(16)//"d842"
'𠮷'.charCodeAt(1).toString(16)//"dfb7"
'𠮷'.charCodeAt(2).toString(16)//"NaN"


image.png

https://codepoints.net/U+20BB7
https://codepoints.net/U+4E25
http://demon.tw/programming/utf-16-ucs-2.html
http://www.alloyteam.com/2016/12/javascript-has-a-unicode-sinkhole/

上一篇下一篇

猜你喜欢

热点阅读