我在我的iriscouch CouchDB上启用了
JSONP,因此我可以对我的视图发出ajax请求.
这意味着任何人都可以向我的CouchDB视图发出ajax请求.
有什么方法可以防止这种情况吗?
如果没有,那么有没有办法限制对视图的访问(关闭JSONP),以便只有我的应用程序可以查看它(使用代理)?
跨域
功能仍然很难.我不认为JSONP允许经过身份验证的请求,因此您对JSONP的选择是在完全公共数据和完全私有数据之间.
(顺便说一句,如果您担心隐私,请注意您的敌人或脚本小子或任何人只需阅读页面源并通过curl查询您的视图.)
跨域安全的正确解决方案是跨对象资源共享(CORS).有一个CouchDB CORS patch.顺便说一句,Iris Couch(我工作的地方)非正式支持这个补丁,如果你联系他们会激活它.
如果您使用代理,那么您将获得巨大的灵活性和对安全性的控制. (显然,缺点是,现在你必须维护一台新的服务器,并且你必须保持警惕,有人在你的安全策略中戳了一个你没有意识到的漏洞.)