我试图在数据绑定文本框中实现一些客户端编码/解码,其中数据在tb和db之间传递。
我到目前为止尝试的是带有visual basic的服务器端功能,但是当代码通过我发送时,在代码有机会运行之前得到编码错误,所以在我看来,JQuery / JS是实现这一目标的方法。
有人可以解释为什么使用htmlEncode和Decode不安全,如下所示以及如何使用客户端解决方法去除html?
提前致谢。
function htmlEncode(value) {
return $('<div/>').text(value).html();
}
function htmlDecode(value) {
return $('<div/>').html(value).text();
}
答案 0 :(得分:0)
这种方法的最大问题是它不对引号进行编码,因此如果输入用于属性值,例如,它可能会破坏html。
elem.innerHTML = '<div title="' + htmlEncode('" onhover="alert(1)') + '">X</div>';
很乐意将元素设置为<div title="" onhover="alert(1)">X</div>
,然后它可以运行用户的脚本。