Javascript 使用URL从隐藏字段XSS调用AJAX安全吗?

Javascript 使用URL从隐藏字段XSS调用AJAX安全吗?,javascript,jquery,xss,Javascript,Jquery,Xss,在jQuery中这样做是否安全 <html> ... <input type="text" id="message" value="" /> <input type="hidden" id="url" name="url" value="http://www.mysite.com/ajax-server-code" /> <script> var url = $('#url'); $.ajax({ url: url, data

在jQuery中这样做是否安全

<html>
...
<input type="text" id="message" value="" />

<input type="hidden" id="url" name="url" value="http://www.mysite.com/ajax-server-code" />

<script>
var url = $('#url');
$.ajax({
url: url,         
dataType: 'json',
success: function(data) {
$('message').html(data.message);
}
});
</script>
...
</html>

...
var url=$(“#url”);
$.ajax({
url:url,
数据类型:“json”,
成功:功能(数据){
$('message').html(data.message);
}
});
...
基本上,我在这里做的是:

  • 使用隐藏字段知道要调用哪个ajax URL
  • 将Ajax调用到URL
  • 使用此数据更改DOM

    • 是的,那很好。我看不出XSS有任何问题。

      无论如何,在Firefox中,DOM是可以使用DOM Inspector进行编辑的,所以你永远不应该相信浏览器会做或者拥有你认为应该做的事情。检查您收到的任何数据。

      这将不起作用,因为您的变量“url”不包含正确的url,但它包含隐藏元素。将其更改为
      var url=$('#url').val()
      。对于问题本身:出于这个目的使用隐藏字段的值是不安全的,因为用户可以轻松地更改隐藏字段的值;策略只是让它变得更难。这取决于隐藏字段的填充方式,但它可能是安全的。如果用户通过某种方式传递GET变量,该变量由于某些服务器端错误而影响了URL的内容,则可能不会。该字段是使用服务器变量而不是用户输入从服务器填充的。虽然为true,但实际上并不相关。修改您自己的DOM并不是真正的XSS。好吧,我想如果您能够以任何方式修改DOM,那么页面是不安全的。使用FireBug或任何DOM编辑器不会使页面不安全,否则Web上的每个页面都是不安全的…页面只是输出。重要的是应用程序的安全性。