我正在使用MeteorJS为手机创建应用程序。它将部署到iOS和Android。
我知道autopublish包用于简化数据库管理,但是当使用MeteorJS作为端点是浏览器且数据库位于远程服务器上的网站时,它也可能引入一些安全问题。若要解决此问题,您可以删除自动发布包并更好地使用Meteor.methods()函数。
我想知道这对于流星&本土'是否相关。移动部署,其中将完整堆栈部署到设备。因此,如果用户要在设备上的独立应用程序的本机包装器中为webview加载javascript控制台,则用户将只能影响对设备的本地数据库的更改(与基于浏览器的版本不同)哪里有共享数据库)。
这有意义吗?我是Meteor的新手,所以我希望我不要误解Meteor的工作原理。
答案 0 :(得分:0)
<强>&#34; &#39;天然&#39;移动部署,将完整堆栈部署到设备&#34;不存在。当你部署到ios或android时,你的客户端代码被Cordova / Phonegap包装并部署,你的服务器必须与浏览器客户端一样部署。
对于浏览器和移动客户端,在部署到生产之前,应始终删除自动发布和不安全的软件包。
浏览器和移动客户端的情况相同。无法访问“共享”#39;数据库,都使用内存数据库中的minimongo,它由ddp pub / sub协议保持更新。
Meteor开发人员认为,使用它的开发人员体验使您(几乎)可以直接访问服务器数据库。
This is in line with standard secure coding principles
出版物发布服务器数据库的子集有两个原因:安全性和性能。虽然可能存在您真正希望发布所有内容的极端情况,但在现实世界的应用中,这可能会泄漏(敏感)数据,并通过发送超过所需数量的速度来减慢您的应用。
出于同样的原因,还必须删除不安全的软件包,就好像保留了允许攻击者对您的服务器数据进行读/写访问一样。