Исходный код Meteor открыт для клиентов?
из общего взгляда на него кажется, что исходный код для приложения Meteor открыт для клиентов из-за темы "написать один файл Javascript, запустить его на клиенте и сервере сразу".
Если исходный код на стороне сервера конкретного приложения открыт для клиентских сторон, не было бы легко для случайного человека скопировать их и создать очень похожее приложение?
не было бы легко для человека со злой целью найти дыры в безопасности в приложении, потому что его серверный код открыт для публично?
например, в Meteor 0.5.0 ' s новый пример of parties app, модель.файл js, похоже, также отправляется на клиентскую сторону.
Я что-то неправильно понял?
редактировать
вот это я не понимаю.
по данным http://docs.meteor.com/#structuringyourapp,
загружаются файлы вне клиентских и серверных подкаталогов как на клиенте, так и на сервере! Это место для определения моделей и других функций
Я действительно не понимаю. Если каждая реализация модели (включая взаимодействие с БД) отправляется клиенту, не будет ли приложение менее безопасным и легко копируется другими разработчиками?
2 ответов
любой код в server/
папка не будет отправлена клиенту (см. http://docs.meteor.com/#structuringyourapp)
редактировать
относительно второй части:
любой код не в client/
или server/
Это код, который вы хотите запустить как на стороне клиента, так и на стороне сервера. Поэтому очевидно, что это должно быть отправлено клиенту.
причина, по которой вы разместите там код модели, заключается в компенсации задержки. Если вы хотите внести изменения в свой данные, лучше всего сделать это сразу на стороне клиента, а затем запустить тот же код на стороне сервера, чтобы "зафиксировать" его по-настоящему. Есть много примеров, когда это имело бы смысл.
если есть "секретный" код модели, который вы не хотите запускать на стороне клиента, у вас наверняка может быть второй .
лучший способ защитить клиент-серверное приложение-это написать явные проверки безопасности на сервере, а не скрывать логику обновления базы данных от клиента.
для объяснения модели безопасности, см. https://stackoverflow.com/a/13334986/791538.