Безопасность NinjaTable

12.12.2018

Данные физически разделены

Все приложения, созданные на сервисе GetReport физически хранят данные в разных базах данных на уровне СУБД. Это исключает возможность ошибочного пересечения данных в различных приложениях.

Для разных приложений NinjaTable используются разные ConnectionString до соответствующих баз данных на уровне СУБД. Каждый ConnectionString имеет права доступа только к своей базе данных. Это исключает возможность взлома (просмотра и модификации) данных одного приложения через другое приложение.

 

Проверка прав доступа

При входе в систему (API метод Login) пользователю выдаётся уникальный AccessToken. Данный AccessToken полностью определяет пользователя и всего его права в системе.

Вся работа с данными и метаданными приложения осуществляется через вызовы API. Перед осуществлением действия каждое API проверяет специальный ключ (AccessToken) пользователя. С помощью этого ключа система идентифицирует пользователя, определяет его права. Если у пользователя недостаточно прав на выполнения действия – система выдаёт сообщение об ошибке. Это исключает возможность просмотра и модификации чужих данных.

В качестве дополнительной защиты выступает проверка AccessToken до обработки самого запроса. Это означает, что перед тем как начать выполнение запроса проверяется, что пользователь авторизован в системе. Данная операция выполняется централизованно, для всех API запросов, кроме метода Login. Это обеспечивает дополнительную безопасность в виде защиты системы от любого запроса от неавторизованного пользователя. Таким образом, не зная логин и пароль от хотя бы одного пользователя системы, невозможно начать выполнение ни одного запроса, система даже не начнёт проверять права.

 

Логирование

Все действия по вводу и изменению данных всеми пользователями логируются. Это даёт возможность узнать, кто создал запись в базе данных, кто ввёл указанное число или строку, какие данные содержала запись на момент ввода.

 

Бекапирование

Каждый день NinjaTable делает бекапы баз данных всех оплаченных приложений в Amazon S3. Это один из мировых лидеров в области надёжного облачного хранения файлов, обеспечивающий высокий уровень безопасности ваших данных. Раз в неделю наша команда вручную бекапит все оплаченные базы данных на отдельный бекап-сервер. Раз в несколько дней делается полный бекап серверов, на которых расположено приложение NinjaTable.

Таким образом, бекапы БД хранятся на трёх разных физических серверах.

Дата-центры Amazon S3.
Сервер бекапов NinjaTable.
Сервера сервиса NinjaTable.