escape、encodeURI、encodeURIComponent

参考链接: https://blog.csdn.net/xude1985/article/details/52268533

字符被替换成了十六进制的转义序列


escape:  ASCII 字母和数字  * @ - _ + . / 

encodeURI:  ASCII 字母和数字   - _ . ! ~ * ' ( )   ;/?:@&=+$,#

encodeURIComponent:   ASCII 字母和数字 - _ . ! ~ * ' ( )


URI:统一资源标志符(Uniform Resource Identifier)

 URL:统一资源定位符(uniform resource location)

locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs.

Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

在这些可书写的字符里,由于一些字符在不同操作系统的编码有不同的解析,被包含在“不安全字符”之中。                                



正确编码

禁止对URI中的保留字作编码,比如&字符。

如果url参数值带有保留字符,encode之。

潜在的语义攻击风险

总结:

这三个方法,当url保留字符不是用作保留字符的时候,需要encode。

URL编码需要遵守的原则:

不要对Unreserved Characters做percent encode编码。

除了保留字符和非保留字符外的所有字符,必须使用percent encode进行编码。

保留字符不用于URI分隔符,而是用于其它位置,比如query部分的value时,要对这时用到的保留字符做percent encode编码。 

猜你喜欢

转载自blog.csdn.net/weixin_41017246/article/details/80568803