Javascript 使用Ajax显示时防止XSS
Javascript 使用Ajax显示时防止XSS,javascript,jquery,ajax,xss,htmlspecialchars,Javascript,Jquery,Ajax,Xss,Htmlspecialchars,从服务器返回的数据易受XSS影响。在将数据发送到客户端之前,我是否需要清理服务器上的数据,或者使用类似于htmlspecialchar(),或者$.get()midigate XSS?多谢各位 $.get('getData.php', function (data){ $('#div1').text(data.div1); $('#div2').html(data.div2); $('#textarea').val(data.textarea); },'json');
从服务器返回的数据
易受XSS影响。在将数据发送到客户端之前,我是否需要清理服务器上的数据,或者使用类似于htmlspecialchar()
,或者$.get()
midigate XSS?多谢各位
$.get('getData.php',
function (data){
$('#div1').text(data.div1);
$('#div2').html(data.div2);
$('#textarea').val(data.textarea);
},'json');
这对于XSS是不可接受的,因为您正在更改元素的文本。这将考虑您使用htmlspecialchars
的目的
$('#div2').html(data.div2);
这是因为您正在更改html而不是文本,因此如果您不知道您的响应,有人可以在那里放置
标记,并在页面上运行任意代码
$('#textarea').val(data.textarea);
也可以,因为它会更改文本区域的内容。谢谢。为了确保我理解,我应该在
.html()
上使用htmlspecialchars()
,但不必在其他两个上使用。您不会使用.html
来开始您不完全信任的内容。我强烈建议您将模板存储在客户端,并从服务器传递数据,然后使用类似mustach的东西来呈现这些模板(默认情况下,mustach转义HTML字符)
$('#textarea').val(data.textarea);