Я на самом деле создаю свое первое приложение, используя метеорит, в частности, используя угловой 2. У меня есть опыт с угловыми 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>
Ok до сих пор. но мое беспокойство: в угловом 1 & 2 приложения компонент или контроллер или директива работает на стороне клиента, а не на стороне сервера.
Я установил свой html, чтобы показать имя клиента. но поскольку это рендеринг ah html, возможно, с некоторым умением довольно легко вставить некоторый код в HTML-рендеринг на угловом, чтобы отображать все мои поля.
Или может быть легко перейти на консоль и ввести некоторые команды для отображения всего объекта из коллекции базы данных.
Итак, мой вопрос: насколько безопасен метеор в этом смысле? Верны ли мои проблемы? Метеор способен защищать мои данные, защищать имена коллекций? Я знаю, что я могу указать в find(), чтобы не принести мне эти конфиденциальные данные, но так как find() может работать не на стороне сервера, его можно легко модифицировать «на лету», нет?
В любом случае ... Я по достоинству оценю, как метеорит безопасен (или нет) в этом смысле.
ty!
Это большая тема. Я бы рекомендовал прочитать раздел [security] (http://guide.meteor.com/security.html) руководства. –
Вообще говоря, вы не должны отправлять данные, к которым у них нет доступа, поэтому если они злонамерены, они видят только данные, которые там можно увидеть. Ваш клиент не защищен никогда, поэтому не доверяйте ему, чтобы не выставлять данные, выполнять проверку и т. Д. – ste2425
Да, но имейте в виду: у вас есть клиент.find(), работающий на стороне клиента ... Я могу поставить что-то вроде client.find (только поля, которые я желаю) ... это нормально ... но так как команда find() будет работать на стороне клиента, легко будет кому угодно выполнить что-то вроде client.find (все, включая чувствительные данные). Очень легко выполнить команды direct find() MongoDB с клиентской стороны. Я пытаюсь выяснить, правильна ли моя теория или нет. –