今天小编给大家分享一下id是html的属性吗的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一
顺晟科技
2021-06-16 10:21:46
195
有时候页面上会有一个输入框,用户输入后内容就会显示在页面上,类似于web聊天应用。如果用户输入一个js脚本,比例尺:script alert(' test ');/script,页面上会弹出一个对话框,或者如果输入的脚本有改变页面js变量的代码,程序就会出现异常或者跳过一些验证。如何防范这种恶意js脚本攻击?通过html进行转义可以解决这个问题。
1:什么是html转义?
Html转义是将特殊字符或html标记转换成它们对应的字符。例如,它将转义为或转义为“script alert(' test ');/script "被转义为:" script alert(' test ');当再次显示“/script”时,页面将被解析为,恢复用户的真实输入,页面上最终显示为“script alert(' test ');/script ”,避免了js注入攻击,真实地显示用户输入。
二:怎么逃?
1.由js实现
//转义元素的innerHTML内容是转义字符
functionhtmlEncode(str){
var ele=document . CreateElement(' span ');
ele . appendchild(document . createtextnode(str));
returnele.innerHTML
}
//解析
functionhtmlDecode(str){
var ele=document . CreateElement(' span ');
ele.innerHTML=str
returnele.textContent
}
2.由jquery实现
functionhtmlencodeq(str){
返回$('span/')。文本(字符串)。html();
}
function html decodeq(str){
返回$('span/')。html(字符串)。text();
}
3.使用
var msg=htmlencodeq(' script alert(' test ');/script ');
$(“正文”)。append(msg);
建议使用jquery实现,因为它的兼容性更好。
本文转载自中文网站
19
2022-10
19
2022-10
18
2022-10
02
2022-10
02
2022-10
02
2022-10