php – 这是ajax行为正常,安全方面
我似乎完全没有理解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.但这与我在之前的几个问题中读到的一些答案相矛盾 这个答案与我得到的结果相符
但同样的答案也说
那么判决是什么?我的目标是保护ajax网址,以便它们不被外部网站(如API)用于将数据转储到我的数据库中. 解决方法
简短的回答:你提到的问题并不安全.
答案很长: 鉴于: > A – 您控制的网站
这意味着你不能区分Charlie访问A和Charlie之间的区别,手动构建HTTP请求以访问您为JavaScript访问提供的URL.
如果Charlie访问站点B,那么站点B无法通过Charlie的浏览器(具有Charlie的凭据)从站点A读取数据. 站点B可以通过Charlie的浏览器向站点A发出请求(例如,通过向JS提交不可见的iframe提供不可见的表单),因此站点B可能导致数据被插入.这是Cross Site Request Forgery,但有办法到defend against this. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |