同形字Homoglyph Attack

同形字就是一些形状相似但含义不同的字符,常用来钓鱼,替换网址中的字符,达到欺骗效果。例如6sɑn.com浏览器访问时解析为http://xn--6sn-hsb.com/,仿冒的网址里加入代码跳转官方网址,利用跳转前的几秒做文章。

部分同形字替换后仍可以正常访问,如:6ˢAn。cºM,这个就可以用来绕过聊天窗口的危险网站标识。

Continue reading »

http协议之URL的组成 划分规则

url分为以下几个部分,对url进行编码时要分别考虑这几个部分的特殊情况,一般参考ie的编码规则编码,url中/\?#@是五个url中可以无限yy的字符 scheme://[user:password@]hostname[:port]/path/[;parameters][?query][#fragment] scheme协议名: 协议名不区分大小写,以:(冒号)结束,特殊情况//可以省略,RFC

Continue reading »

URL保留字符/特殊含义字符编码

保留字符就是那些在URL中具有特定意义的字符。不安全字符是指那些在URL中没有特殊含义,但在URL所在的上下文中可能具有特殊意义的字符。 url中保留字符的特殊含义 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %2

Continue reading »

浏览器/服务端的url最大长度限制

HTTP协议中没有对url长度做出限制,但浏览器和服务端对url长度都有限制。 不同浏览器url长度限制也不同,如果超长则会截取部分或者拒绝发送超长url。 IE的最大URL长度限制是2083字节,而实际可以使用的最大长度为2048字节 Firefox最大url长度限制为65,536个字符 Safari最大url长度限制为80,000个字符 Opera最大url长度限制为190,000个字符 Go

Continue reading »

wininet不能正确处理使用GB2312编码的url

大部分网站的url是基于utf8的,例如google,但有些却是基于GB2312的,例如baidu。 基于GB2312的url,ie能正确处理,但wininet却不能正确处理,wininet把这个网站返回的gb码当成utf8, 先转为utf16,然后又转成utf8,最后按照gb显示出来就变成了“锟斤拷”了,所以就需要自己的程序处理,尤其注意(301/302)重定向的url。 为什么是“锟斤拷”?

Continue reading »