网上相关资料比较少,这里收集一下
防止跨站脚本(XSS)相关的关键输出编码机制
编码类型 | 编码机制 |
HTML实体编码 | 1. 字符 , . - _ 空格 不需要转码 2. 字母(a-z, A-Z)数字(0-9)不需要转码 3. 转换 & 为 & 4. 转换 < 为 < 5. 转换 > 为 > 6. 转换 " 为 " 7. 其余的转化为 16进制 或者� 十进制表表述 |
HTML属性编码 | 在HTML实体编码规范中,对1中的空格需要转码 |
URL 编码 | 1. 空格转为 + 2. 字母(a-z, A-Z)数字(0-9)不需要转码 3. -,-,.,* 字符 不需要转码 4. 使用单字节对原编码字符进行转换 转化格式使用%FF FF是16进制表达 例如:“中” UTF-8的编码是E4 B8 AD URL编码后 %E4%B8%AD |
JavaScript编码 | 1. 字母 数字 ,. _ 字符不需要转码 2. 小于256 编码转义成\xFF FF为十六进制,不足2位需要补0至2位 3. 大于256 编码转义成 \uFFFF FFFF为十六进制,如不足4位不足位需补0至4位 |
CSS编码 | 1. 大于等于32 小于等于126字符中,除"、'、<、&、/、\ 、> 字符其余都不需要转码 2. 其他的转为格式为 “\FFFF” FFFF为十六进制,无位数显示要求 3. 转义后可以增加空格来分割下一个转义 |
注:上面除(URL编码)所列均为unicode 编码