3.3编码方案

url编码

url只允许使用us-ascii字符集中的可打印字符(也就是ascii代码在0x20-0x7e范围内的字符)。而且,由于其在url方案或http协议内具有特殊含义,这个范围内的一些字符也不能用在url中

url编码方案主要用于对扩展ascii字符集中的任何有问题的字符进行编码,使其可通过http安全传输。任何url编码的字符都以%为前缀,其后是这个字符的两位十六进制ascii代码。以下是一些常见的url编码字符:

%3d代表=

%25代表%

%20代表空格

%0a代表新行

%00代表空字节

另一个值得注意的编码字符时加号(+),它代表url编码的空格(除%20代表空格外)

unicode编码

unicode是一种为支持全世界所使用的各种编写系统而设计的字符编码标准,它采用各种编码方案,其中一些可用于表示web用于程序中的不常见字符。

16位unicode编码的字符以%u为前缀,然后是这个字符的十六进制unicode码点。

%u2251代表/

utf-8是一种长度可变的编码标准,它使用一个或几个字节表示每个字符。utf-8编码的多字节以%为前缀,其后用十六进制表示每个字节

%c2%a9代表@

%e2%89%a0代表不等号

攻击web应用程序时之所以要用到unicode编码,主要在于有时可用他来破坏输入确认机制。如果输入过滤阻止了某些恶意表达式,但随后处理输入的组件识别unicode码,就可以使用各种标准与畸形unicode编码避开过滤。

html编码定义了大量html实体来表示特殊的字面量字符

&quot代表‘’

&lt 代表<

此外,任何字符都可以使用它的十进制ascii码进行html编码

&#34 代表‘’

#39代表‘

或使用十六进制ascii码(以x为前缀)

&#x22代表’‘

&#x27 代表’

当攻击web应用程序时,html编码主要在探查跨站点脚本漏洞时发挥作用。如果应用程序在响应中返回未被修改的用户输入,那么他可能易于受到攻击;但是,如果他对危险字符进行html编码,也许比较安全

base64编码

base64编码仅用一个可打印的ascii字符就可安全转换任何二进制数据,它常用于对电子邮件附件进行编码,使其通过smtp安全传输。它还可以用于在基本http验证机制中队用户证书进行编码

base64编码将输入数据转换成3个字节块。每个块被划分为4段,没段6个数据位。这6个数据位有64中不同的排列组合,因此每个段可使用一组64个字符表示。

十六进制编码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值