我實際上是在使用流星來創建我的第一個應用程序,特別是使用角度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命令看起來非常簡單。我試圖弄清楚我的理論是否正確。 –