防XSS的输出编码规则

网上相关资料比较少,这里收集一下

防止跨站脚本(XSS)相关的关键输出编码机制

编码类型

编码机制

HTML实体编码

1.  字符 , . - _ 空格 不需要转码

2.  字母(a-z, A-Z)数字(0-9)不需要转码

3.  转换 & 为 &

4.  转换 < 为 &lt;

5.  转换 > 为 &gt;

6.  转换 " 为 &quot;

7.  其余的转化为&#xFFFF 16进制 或者&#0000 十进制表表述

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 编码


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页