是mongodb安全/安全在流星建立移动应用程序?

时间:2015-03-04 07:37:46

标签: meteor

我是流星的新手。我计划用现有的mongodb在流星中开发一个移动应用程序。在流星中构建移动应用程序是安全/可靠吗?数据库凭据将存储在哪里,移动还是服务器?

2 个答案:

答案 0 :(得分:1)

数据库凭据将存储在服务器中。用户的登录凭据在发送到服务器之前也会被加密。

您想要成为服务器端的任何东西,只应放在/ server目录下。其他一切都可能在客户端可见。

答案 1 :(得分:1)

为避免出现问题,您必须处理两个对开发有效的默认设置 - 但需要切换以进行生产:

默认情况下,Meteor会将我们数据库中的所有数据提供给用户。这在开发过程中很方便,但需要插入一个很大的安全漏洞

  • 此默认功能包含在 autopublish 包中。要删除它,请使用:meteor remove autopublish但它也会中断并需要修复。
    • 修复应用程序的第一步是在isServer条件内使用Meteor.publish函数来决定应该有哪些数据。
    • 由于Meteor.publish功能在服务器上执行,因此它可以继续访问我们的所有数据。这是因为服务器上的代码本质上是可信的。
    • 修复应用程序的第二步是使用isClient条件中的Meteor.subscribe函数来引用发布函数。
    • 在发布函数中,我们不能使用Meteor.userId()函数。但是,我们可以用this.userId实现相同的目的。

默认情况下,用户可以使用JavaScript控制台插入,更新和删除集合中的数据。这对于开发来说很方便,但对于实时应用程序来说存在很大的安全风险。

  • 解决方案是将与数据库相关的代码移动到服务器的可信环境中。在那里,用户没有任何直接控制。
  • 首先使用meteor remove insecure - >删除安全风险从项目中删除不安全的包。应用程序将变得更加安全,但我们的应用程序将破裂。没有与数据库相关的功能。
  • 通过使用方法,您可以编写在从客户端触发后在服务器上运行的代码。这是修复应用程序的方法。
  • 要创建方法,请在服务器上使用方法块,然后使用Meteor.call函数触发方法。
  • 您可以将Meteor.call函数中的数据传递到方法中,这样我们仍然可以在服务器上使用我们提交的表单中的数据。

(答案方从"你的第一个流星应用程序",David Turnbull复制)

希望有助于获得这个概念。

迈克尔