首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery Ajax XML响应问题

Jquery Ajax XML响应问题
EN

Stack Overflow用户
提问于 2009-11-04 20:31:42
回答 2查看 843关注 0票数 0

我对一些事情有点困惑,我正在通过Jquery做一个Ajax请求,我在一个xml文档中发送回编码的数据(使用htmlentities来阻止XSS ),但问题是当我解析XML并获得数据时,似乎Jquery自动解码htmlentities,而我最终得到了易受攻击的数据。

您是否知道如何防止Jquery解码编码的数据,或者我在ajax请求中缺少一个选项。

任何帮助都是非常感谢的,因为我被困在这一点上。

以下是我当前的ajax选项:

代码语言:javascript
运行
复制
$.ajax({
  url: 'ajax_handle.php',
  data: {pg: cpage, rid: rid},
  type: 'POST',
  cache: false,
  error: function(xhr, ajaxOptions, thrownError){
     $( button ).val( 'Error' );
  },
  success: function(xmldata){ /* Parsing here */ }
}

不知何故,当我使用Jquery find()并获取文本时,所有用htmlentities编码的数据都会被解码。

示例:

代码语言:javascript
运行
复制
Data : <c><cu>Test</cu><cb>&#160;htmlentitiesgez564&lt;script&gt;</cb></c>

解析后的数据:

代码语言:javascript
运行
复制
cu : Test
cb :  htmlentitiesgez564<script>;

你可以看到这有多危险,你知道怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-04 21:23:56

jQuery会自动解码数据,但只要您不对数据执行eval操作或将数据注入到DOM中,就不会发生任何事情。因此,例如,如果您想将此代码注入到DOM中,则不必使用html方法,而必须使用text方法:

代码语言:javascript
运行
复制
$('#someDiv').text('<script>alert("ok");</' + 'script>');
票数 0
EN

Stack Overflow用户

发布于 2009-11-04 20:56:10

尝试将dataType选项添加到ajax配置对象

代码语言:javascript
运行
复制
$.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收到的响应将被解释为文本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1673503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档