萌新在练习留言板时发现在输入框中写一段js脚本,例如,页面会弹出一个对话框。于是就去网上查找资料,发现可以利用js脚本改变页面js变量使程序异常或者跳过网站某种验证获取某些信息。这时,我们可以通过html转义来解决这个问题。
html转义
html转义就是将特殊字符或者html标签转移为与之对应的字符,例如,不但有效的避免了javascript注入攻击,又反映出用户的真实输出。
我们可以利用jquery来解决
/*对html标签进行转义*/
function htmlEncode ( str ) { //str为输入值
return $('<span/>').text( str ).html();
}
/*对html标签进行反转义*/
function htmlDecodeJQ ( str ) {
return $('<span/>').html( str ).text();
}
通过js来实现
//转义 元素的innerHTML内容即为转义后的字符
function htmlEncode ( value) {
var fig = document.createElement('span');
fig.appendChild( document.createTextNode( value) );
return fig.innerHTML;
}
//解析
function htmlDecode ( value) {
var fig = document.createElement('span');
fig.innerHTML = value;
return ele.textContent;
}
初来乍到, 请大家多多指教!!