使用Ajax显示时防止XSS

时间:2013-05-28 13:14:58

标签: javascript jquery ajax xss htmlspecialchars

从服务器返回的

data易受XSS攻击。在使用htmlspecialchar()之类的内容将数据发送到客户端之前,是否需要对服务器上的数据进行清理,或者$.get()使用XSS?谢谢

$.get('getData.php',
function (data){
    $('#div1').text(data.div1);
    $('#div2').html(data.div2);
    $('#textarea').val(data.textarea);
},'json');

1 个答案:

答案 0 :(得分:0)

$('#div1').text(data.div1);

由于您正在更改元素的文本,因此XSS不易察觉。这会照顾您使用htmlspecialchars的内容。

$('#div2').html(data.div2);

这是因为你正在更改 html 而不是文本,所以如果你不知道你的回复,有人可以在那里放一个<script>标签并运行任意代码你的页面。

$('#textarea').val(data.textarea);

也可以,因为它会改变文本区域的内容。