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/