是什么让跨域ajax不安全?

Jor*_*ren 10 security ajax cross-domain

我不确定我理解这会导致什么类型的漏洞.

当我需要从API访问数据时,我必须使用ajax在我自己的服务器上请求PHP文件,并且该PHP文件访问API.是什么让这比仅仅允许我直接用ajax命中API更安全?

就此而言,看起来好像使用JSONP http://en.wikipedia.org/wiki/JSONP,您可以执行跨域ajax允许您执行的所有操作.

有人可以开导我吗?

rua*_*akh 12

我认为你误解了同源政策试图解决的问题.

想象一下,我已登录Gmail,并且该Gmail有一个JSON资源http://mail.google.com/information-about-current-user.js,其中包含有关已登录用户的信息.此资源可能是由Gmail用户界面使用,但是,如果不是针对同源策略,我访问过的任何网站以及怀疑我可能是Gmail用户的网站都可以运行AJAX请求来获取该资源像我这样的资源,并检索有关我的信息,而Gmail无法做很多事情.

因此,同源策略不是保护您的PHP页面免受第三方网站的侵害; 并且不是要保护从第三方网站访问您的PHP页面的人; 相反,它是为了保护别人访问你的PHP页面,以及任何第三方网站,他们有特殊的访问,从你的PHP页面.("特殊访问"可能是因为Cookie,HTTP AUTH或IP地址白名单,或者仅仅是在正确的网络上 - 也许有人在NSA工作并且正在访问您的网站,这并不意味着您应该能够从NSA内部页面触发数据转储.)

JSONP通过引入不同的限制以安全的方式绕过它:它仅在资源是JSONP时才有效.因此,如果Gmail希望第三方可以使用给定的JSON资源,它可以支持该资源的JSONP,但如果它只希望该资源可由其自己的用户界面使用,则它只能支持普通的JSON.