我不知道我明白这是什么类型的漏洞.
当我需要从API访问数据时,我必须使用ajax在我自己的服务器上请求一个PHP文件,该PHP文件访问该API.什么使这更安全,只是让我直接用ajax打API?
对于这个问题,它看起来像使用JSONP http://en.wikipedia.org/wiki/JSONP,你可以做任何跨域ajax将让你做的一切.
有人可以启发我吗
我认为你误解了同源政策试图解决的问题.
想像一下,我已经登录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.