18910140161

浅谈html转义及防止javascript注入攻击的方法

顺晟科技

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实现,因为它的兼容性更好。

本文转载自中文网站

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航