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