那个电商有自己的线上电商 线下实体店app?

作者:zccst又一次因为转义字符而栽坑里了。产品详情productDetail.js在页面显示时,使用了转义函数escapleHTML在errors对象里通过页面中的字符作为key,取errors[i][key]的值时,要先对key做反转义,然后才能取出来。var $tr = $(trs[i]),
keyname = $tr.find("td").eq(0).html();var map = data[0].// 页面中的keyname是转义过的,取值时需要反转义if(map && map[util.unescapeHTML(keyname)]){$tr.find("td").eq(2).append('&br/&&span&'+map[util.unescapeHTML(keyname)]+'&/span&');}转义分为escapeHTML和unescapeHTML,先看两个函数的实现。/** * @function escapeHTML 转义html脚本 & & & " ' * @param a - *
字符串 */escapeHTML: function(a){a = "" +return a.replace(/&/g, "&").replace(/&/g, "&").replace(/&/g, "&").replace(/"/g, "&").replace(/'/g, "&");;},/** * @function unescapeHTML 还原html脚本 & & & " ' * @param a - *
字符串 */unescapeHTML: function(a){a = "" +return a.replace(/&/g, "&").replace(/&/g, "&").replace(/&/g, "&").replace(/&/g, '"').replace(/&/g, "'");},1,escapeHTML将& & & " '转成字符实体使用场景:(1)用户在页面中录入(比如输入框) &script&alert(2);&/script&, js将该内容提交给后端保存(2)显示时,后端将字符串返回前端;js接收到之后:a, 使用escapeHTML,将字符串转为 &script&alert(2);&/script&此时,浏览器将能正确解析,因为浏览器接收到实体字符后,转成对应的尖括号等。b, 不使用escapeHTML,浏览器一看到&,便认为是html标签的开始,直接把刚才的字符串当脚本执行了,这就是xss漏洞。2,unescapeHTML将字符实体转成& & & " '使用场景:后端将已经转义后的内容显示到页面;比如&script&alert(2);&/script& js收到后:a,前端进行unescapeHTML,则可以直接dom操作,将标签显示到页面。b,前端没有unescapeHTML,则原样输出&script&alert(2);&/script&,但此时并没有执行。转义字符:& =& && =& && =& &" =& &' =& &下面的记录不完整,以后慢慢补充吧提示:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。如果您觉得本文的内容对您的学习有所帮助,您可以微信:
大小: 31.2 KB
自定义的Troop&T&泛型类(qt c
最新教程周点击榜
微信扫一扫}

我要回帖

更多关于 线上电商 线下实体店 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信