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


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值