我实际上是在使用流星来创建我的第一个应用程序,特别是使用角度2.我已经使用过Angular 1和2,所以基于它。我有一些问题的关注......流星 - 它有多安全?
让我们想象一下这个场景......我的存储数据有关MongoDB:
收藏:客户
{
name : "Happy client",
password : "Something non encrypted",
fullCrediCardNumber : "0000 0000 0000 0000"
}
现在,我的流星客户端文件夹,我“这已经... struncture
收集clients.ts(服务器文件夹)
export var Clients = new Mongo.Collection('clients');
合作mponent client.ts(而不是服务器文件夹)
import {Clients} from '../collections/clients.ts';
class MyClients {
clients: Array<Object>;
constructor(zone: NgZone) {
this.clients = Clients.find();
}
}
..和去年:HTML页面来呈现它,但只显示客户的名称:
<li *ngFor="#item of clients">
{{client.name}}
</li>
好为止。但我担心的是:在应用程序中,组件或控制器或指令在客户端而不是服务器端运行。
我设置我的html只是为了显示客户端的名称。但是因为它是html渲染啊,可能有一些技巧很容易将一些代码注入到角度上的HTML渲染中以显示我的所有字段。
或者可以很容易地转到控制台并键入一些命令来显示数据库集合中的整个对象。
所以,我的问题是:在这个意义上流星有多安全?我的担忧是否正确?流星是否有能力保护我的数据,保护藏品的名称?我知道我可以在find()上指定这些敏感数据,但由于find()可能不在服务器端运行,因此可以很容易地对它进行即时修改,不是吗?
无论如何......我会很感激在这个意义上关于流星是如何安全(或不是)的解释。
ty!
这是一个很大的话题。我建议阅读本指南的[security](http://guide.meteor.com/security.html)部分。 –
一般来说(非常普遍),你不应该发送他们没有访问的数据,这样如果他们是恶意的,他们只能看到允许看到的数据。你的客户端是不安全的,所以不要相信它不公开数据,执行验证等。 – ste2425
是的,但要记住:你有一个client.find()运行在客户端...我可以把像client.find(只有我希望的字段)...没关系......但是因为find()命令将在客户端运行,所以任何人都可以轻松执行诸如client.find之类的东西(包括敏感数据) - 从客户端执行直接的find()MongoDB命令看起来非常简单。我试图弄清楚我的理论是否正确。 –