在jQuery中这样做是否XSS安全?是否使用URL从隐藏域XSS安全中调用AJAX?
<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>
基本上,我在这里做的是:
- 使用隐藏域得知其AJAX URL调用
- 调用Ajax来的URL
- 使用这些数据来改变DOM
这不起作用,因为您的变量“url”不包含正确的url,但它包含隐藏的元素。将其更改为'var url = $('#url')。val()'。对于这个问题本身:为此目的使用隐藏字段的值是不安全的,因为用户可以容易地改变隐藏字段的值。 –
[同源策略](http://en.wikipedia.org/wiki/Same_origin_policy)不允许XSS。 – MaXo
XSS不必从外部URL加载;该政策只是让它更难。 –