Безопасность NinjaTable
Данные физически разделены
Все приложения, созданные на сервисе GetReport физически хранят данные в разных базах данных на уровне СУБД. Это исключает возможность ошибочного пересечения данных в различных приложениях.
Для разных приложений NinjaTable используются разные ConnectionString до соответствующих баз данных на уровне СУБД. Каждый ConnectionString имеет права доступа только к своей базе данных. Это исключает возможность взлома (просмотра и модификации) данных одного приложения через другое приложение.
Проверка прав доступа
При входе в систему (API метод Login) пользователю выдаётся уникальный AccessToken. Данный AccessToken полностью определяет пользователя и всего его права в системе.
Вся работа с данными и метаданными приложения осуществляется через вызовы API. Перед осуществлением действия каждое API проверяет специальный ключ (AccessToken) пользователя. С помощью этого ключа система идентифицирует пользователя, определяет его права. Если у пользователя недостаточно прав на выполнения действия – система выдаёт сообщение об ошибке. Это исключает возможность просмотра и модификации чужих данных.
В качестве дополнительной защиты выступает проверка AccessToken до обработки самого запроса. Это означает, что перед тем как начать выполнение запроса проверяется, что пользователь авторизован в системе. Данная операция выполняется централизованно, для всех API запросов, кроме метода Login. Это обеспечивает дополнительную безопасность в виде защиты системы от любого запроса от неавторизованного пользователя. Таким образом, не зная логин и пароль от хотя бы одного пользователя системы, невозможно начать выполнение ни одного запроса, система даже не начнёт проверять права.
Логирование
Все действия по вводу и изменению данных всеми пользователями логируются. Это даёт возможность узнать, кто создал запись в базе данных, кто ввёл указанное число или строку, какие данные содержала запись на момент ввода.
Бекапирование
Каждый день NinjaTable делает бекапы баз данных всех оплаченных приложений в Amazon S3. Это один из мировых лидеров в области надёжного облачного хранения файлов, обеспечивающий высокий уровень безопасности ваших данных. Раз в неделю наша команда вручную бекапит все оплаченные базы данных на отдельный бекап-сервер. Раз в несколько дней делается полный бекап серверов, на которых расположено приложение NinjaTable.
Таким образом, бекапы БД хранятся на трёх разных физических серверах.
Дата-центры Amazon S3.
Сервер бекапов NinjaTable.
Сервера сервиса NinjaTable.