Что означает "разделение услуг"?
Я создаю веб-приложение с использованием Node/Express/Angular/Mongo, и я впервые работаю с облачным сервером. Rackspace предложил мне разделить свои сервисы. Стремясь не выглядеть полным новичком перед клиентом, я обращаюсь к своим друзьям в Stackru:)
Что именно это означает? Есть ли распространенная практика, как организовать код и экземпляры Mongo и Node для "разделения"?
Мое краткое чтение на эту тему заставляет меня поверить, что это означает защитные меры, поэтому пользователь А не может помешать работе или прослушать конфиденциальную информацию от пользователя Б.
1 ответ
По сути, это гарантирует, что ваша информация, которая обрабатывается, показывается только людям, которые "должны ее видеть" - устанавливая свойства в объектах, только когда они ДОЛЖНЫ быть установлены. Удостоверьтесь, что все основано на необходимости, и вы не отправляете больше данных, чем нужно, в различные места, такие как уровень кэша, журналы, сеанс пользователя и т. Д.
Хороший пример, где разделение имеет смысл, это страница, которая делает что-то вроде SELECT * FROM user WHERE id=123
и хранит это как $_SESSION['USER'][123]
для страницы, где пользователь просто хочет увидеть свои загруженные фотографии или что-то еще. В облачных вычислениях риск утечки информации выше, поэтому необходимо предпринять больше шагов для защиты конфиденциальной информации.
У Wiki действительно хороший пример:
В вопросах, касающихся информационной безопасности, будь то государственный или частный сектор, разделение является ограничением доступа к информации для лиц или других организаций, которым необходимо знать ее для выполнения определенных задач. Концепция возникла при обработке секретной информации в военных и разведывательных приложениях. Основой для разделения было представление о том, что, если меньше людей знают подробности миссии или задачи, риск или вероятность того, что такая информация может быть скомпрометирована или попадет в руки оппозиции, уменьшится. Следовательно, существуют различные уровни разрешения в организациях. Тем не менее, даже если кто-то имеет наивысший клиренс, определенная "разделенная" информация, идентифицируемая кодовыми словами, относящимися к конкретным типам секретной информации, может по-прежнему ограничиваться определенными операторами, даже с более низким общим клиренсом безопасности. Информация, помеченная таким образом, называется кодовым словом - классифицируется. Одним из известных примеров этого был Ultra secret, где документы были помечены как "Совершенно секретно Ultra": "Совершенно секретно" обозначало уровень безопасности, а ключевое слово "Ultra" еще больше ограничивало читателей только теми, кому разрешено читать "Ultra" документы. 1
Разделение сервисов просто переносит эту концепцию на движущиеся части вашего приложения. Если в одном месте движется слишком много деталей, вы увеличиваете риск, если любая из этих деталей выйдет из строя. Ваш сервер, вероятно, рекомендует вам иметь электронную почту на одном сервере, базу данных на другом сервере, кэш на другом сервере и т. Д. Они зарабатывают больше денег, и ваше приложение "безопаснее", если какой-либо из этих серверов выйдет из строя.