我似乎完全没有理解ajax的安全性,而且我不断帮助我不断回答我的问题.所以我做了这个实验.
我在site1.com上有这个js代码,位于http://site1.com/script.js.在服务器端,它进入数据库但不返回任何输出.当我从site1.com调用此函数时,我看到该条目已按预期记录在数据库中.
function enterdb(){
$.ajax({
async: false,
url: 'http://site1.com/test?format=json',
type: 'POST',
data: { input: '1' },
success: function(resp) {
alert(resp);
}
});
}
我将相同的js复制到了othersite.com的js文件中,现在位于http://othersite.com/script.js,看看它是否会登录到数据库.它不是很好,因为我不希望人们从其他外部脚本播放我的ajax URL.但这与我在之前的几个问题中读到的一些答案相矛盾
这个答案与我得到的结果相符
Cross domain is always banned because
of the Same Origin Policy.
但同样的答案也说
your JavaScript making a XHR and someone spoofing one, they are
the same and impossible to
differentiate (though you can
definitely make it harder).
那么判决是什么?我的目标是保护ajax网址,以便它们不被外部网站(如API)用于将数据转储到我的数据库中.