Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax显示时防止XSS_Javascript_Jquery_Ajax_Xss_Htmlspecialchars - Fatal编程技术网

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);