前端js的三种解码方式

前端js的三种解码方式,第1张

只有 0-9[a-Z] $ - _ + ! ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL。
例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码。

1) escape 和 unescape
原理:对除ASCII字母、数字、标点符号 @ _ + - / 以外的其他字符进行编码。
编码:
eg:escape('>你这是从Servlet中取参然后在界面显示是吧,JSP这个你设置的没:<%@page pageEncoding="utf-8" contentType="utf-8" %>
以及request,response的设置:
requestsetCharacterEncoding("utf-8");
responsesetContentType("text/html;charset=utf-8");

首先传递到你的后台是不会自动解码的,但是浏览器会自动解码,所以当黑客把有攻击性的URL通过encode编码方式发送到你们后台时,如果没有通过decodeURI()来解码(解码的目的是为对解码后的链接进行判断,防止参数含有XSS),那么这段代码可能会通过系统对参数的XSS过滤,从而展现到前台,由于浏览器会自动解码(浏览器中含有decode函数),所以没有被过滤的XSS会被执行。

1、 域名解析
2、 根据IP建立TCP连接(三次握手)
3、 发送>URLEncode方法是把任何我们给出的参数转换成适合放在URL中的字符串。具体规则:
1。字母,数字,连字符不变。
2。空格转换成加号。
3。其他所有的字符转换成用百分号表示,后跟字符的两位十六进制编码。
URLDecode功能相反。
例子:
String param = requestgetParameter("userName"); // param:%E5%AD%99%E6%82%9F%E7%A9%BA1
String userName = URLDecoderdecode(param, "UTF-8"); // 孙悟空1
urlEncode
userName // 孙悟空1
String url = URLEncoderencode(userName, "UTF-8"); //%E5%AD%99%E6%82%9F%E7%A9%BA1
这样就很清楚了,urlencode是转码,urldecode是解码

var string_a = 'distance=20&limit_start=0&limit_num=3&lng=11407&lat=2253';
var string = string_asplit('&');
var res = {};
for(var i = 0;i<stringlength;i++){
    var str = string[i]split('=');
    res[str[0]]=str[1];
}
documentwrite(JSONstringify(res));

结果

在iOS中通过WebView加载Url或者请求>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13376444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存