jqueryajaxxml响应问题
我有点困惑,我正在通过Jquery执行Ajax请求,我使用htmlentities发送xml文档中的编码数据以防止XSS,但问题是当我解析xml并获取数据时,Jquery似乎会自动解码htmlentities,我最终得到易受攻击的数据 您知道如何防止Jquery对编码数据进行解码吗,或者我在ajax请求中缺少了一个选项 任何帮助都是非常感谢的,因为我被困在这一点上 以下是我当前的ajax选项: 不知何故,当我使用Jquery查找并获取文本时,所有使用htmlentities编码的数据都会被解码 例如:jqueryajaxxml响应问题,jquery,xml,ajax,Jquery,Xml,Ajax,我有点困惑,我正在通过Jquery执行Ajax请求,我使用htmlentities发送xml文档中的编码数据以防止XSS,但问题是当我解析xml并获取数据时,Jquery似乎会自动解码htmlentities,我最终得到易受攻击的数据 您知道如何防止Jquery对编码数据进行解码吗,或者我在ajax请求中缺少了一个选项 任何帮助都是非常感谢的,因为我被困在这一点上 以下是我当前的ajax选项: 不知何故,当我使用Jquery查找并获取文本时,所有使用htmlentities编码的数据都会被解码
Data : <c><cu>Test</cu><cb> htmlentitiesgez564<script></cb></c>
解析数据:
cu : Test
cb : htmlentitiesgez564<script>;
您可以看到这有多危险,知道如何修复吗?尝试将数据类型选项添加到ajax配置对象中
$.ajax({
url: 'ajax_handle.php',
data: {pg: cpage, rid: rid},
type: 'POST',
dataType: "text",
cache: false,
error: function(xhr, ajaxOptions, thrownError){
$( button ).val( 'Error' );
},
success: function(xmldata){ /* Parsing here */ }
}
这应该告诉jQuery,接收到的响应将被解释为文本,jQuery将自动解码数据,但只要不求值或将数据注入DOM,就不会发生任何事情。因此,例如,如果要将其注入DOM,则不必使用该方法,而是使用该方法:
请编辑您的问题:用4个空格缩进源代码以使其看起来良好。您的意思是,您在成功函数中获得的xmldata已解码实体?您是否尝试在ajax请求中显式地将数据类型设置为xml?我还是这么做了,我理解的是Jquery会自动解码数据。这是真的,但我无法解析它,因为响应是xml数据。谢谢!这实际上是一种更简单的方法,我喜欢K.I.s.SAlso,我发现将数据放在里面会阻止解析器解析数据,所以这也解决了这个问题!
$.ajax({
url: 'ajax_handle.php',
data: {pg: cpage, rid: rid},
type: 'POST',
dataType: "text",
cache: false,
error: function(xhr, ajaxOptions, thrownError){
$( button ).val( 'Error' );
},
success: function(xmldata){ /* Parsing here */ }
}
$('#someDiv').text('<script>alert("ok");</' + 'script>');