Руководство по безопасности NocoBase
NocoBase уделяет особое внимание безопасности данных и приложений — от функционального дизайна до системной реализации. Платформа содержит встроенные функции безопасности, такие как аутентификация пользователей, контроль доступа и шифрование данных, а также позволяет гибко настраивать политики безопасности в соответствии с реальными потребностями. Будь то защита пользовательских данных, управление правами доступа или изоляция сред разработки и продакшна, NocoBase предоставляет практические инструменты и решения. Цель этого руководства — дать рекомендации по безопасному использованию NocoBase, помогая защищать безопасность данных, приложений и окружения и обеспечивать эффективное использование функций системы при соблюдении требований безопасности пользователей.
Аутентификация пользователей
Аутентификация пользователей используется для идентификации пользователей, предотвращения несанкционированного входа в систему и защиты учетных записей от неправомерного использования.
Ключ токена (Token Key)
По умолчанию NocoBase использует JWT (веб-токен в формате JSON) для аутентификации вызовов API на стороне сервера. Пользователи могут задать ключ токена через переменную окружения APP_KEY. Управляйте ключом токена приложения должным образом, чтобы избежать утечки. Обратите внимание: если APP_KEY изменится, старые токены также станут недействительными.
Политика токенов
NocoBase поддерживает настройку следующих политик безопасности пользовательских токенов:
Обычно мы рекомендуем администраторам:
- Устанавливать более короткий срок действия токена, чтобы ограничить время его использования при возможной компрометации.
- Устанавливать разумный срок действия сессии — он должен быть больше срока действия токена, но не слишком большим — чтобы балансировать пользовательский опыт и безопасность. Используйте механизм автоматического обновления токена, чтобы активные сессии пользователей не прерывались, одновременно снижая риск злоупотребления долгоживущими сессиями.
- Устанавливать разумный лимит обновления истекшего токена, чтобы при длительной неактивности пользователя токен естественным образом истекал без выпуска нового токена, снижая риск злоупотребления «спящими» пользовательскими сессиями.
Хранение токена на клиенте
По умолчанию пользовательские токены хранятся в постоянном локальном хранилище браузера. После закрытия вкладки браузера и повторного открытия, если токен всё ещё действителен, пользователю не нужно входить снова.
Если вы хотите, чтобы пользователи входили заново каждый раз при открытии страницы, вы можете задать переменную окружения API_CLIENT_STORAGE_TYPE=sessionStorage, чтобы сохранять пользовательский токен в сессионном хранилище браузера. Это позволит требовать повторного входа при каждом открытии страницы.
Политика паролей
Доступно начиная с редакции Professional и выше
NocoBase поддерживает настройку правил пароля и политики блокировки попыток входа по паролю для всех пользователей, чтобы повысить безопасность приложений NocoBase, в которых включён вход по паролю. См. Политика паролей для описания каждого параметра.
Правила пароля
Настройка срока действия пароля
Безопасность входа по паролю
Обычно мы рекомендуем:
- Настроить строгие правила пароля, чтобы снизить риск угадывания паролей по ассоциациям или атак полным перебором.
- Установить разумный срок действия пароля, чтобы вынуждать пользователей регулярно менять пароли.
- Использовать сочетание количества неудачных входов и настроек времени, чтобы ограничить частые попытки входа по паролю за короткий период и предотвра тить подбор пароля полным перебором.
- Если требования безопасности строгие, можно задать разумное время блокировки пользователя после превышения лимита входа. Однако следует учитывать, что настройка времени блокировки может быть использована злоумышленниками: атакующие могут намеренно многократно вводить неверный пароль для целевых учётных записей, вынуждая их блокироваться и становиться непригодными для использования. На практике можно комбинировать ограничения по IP, ограничения частоты запросов API и другие меры, чтобы предотвратить такие атаки.
- Изменить значения по умолчанию для имени пользователя, адреса электронной почты и пароля учётной записи root в NocoBase, чтобы предотвратить злоупотребления.
- Поскольку истечение пароля или блокировка учётной записи препятствуют доступу к системе (включая администраторские учётные записи), рекомендуется настроить в системе несколько учётных записей с правами сброса паролей и разблокировки пользователей.

Блокировка пользователя
Доступно начиная с редакции Professional и выше; входит в состав плагина политики паролей
Управляйте пользователями, которые были заблокированы из-за превышения лимита неудачных попыток входа по паролю. Вы можете вручную разблокировать их или вручную добавлять подозрительных пользователей в список блокировки. После блокировки пользователю будет запрещен доступ к системе через любой метод аутентификации, включая ключи API.

Ключи API
NocoBase поддерживает вызов системных API через ключи API. Пользователи могут добавлять ключи API в настройках плагина «Аутентификация: API-ключи».
- Привяжите к ключу API корректную роль и убедитесь, что права, связанные с этой ролью, настроены правильно.
- Не допускайте утечек ключей API при использовании.
- В целом рекомендуется задавать срок действия для ключей API и избегать использования режима «бессрочно».
- Если обнаружено аномальное использование ключа API и есть риск утечки, пользоват ель может удалить соответствующий ключ API, чтобы сделать его недействительным.

Единый вход
Коммерческий плагин
NocoBase предоставляет набор плагинов для единого входа, поддерживающих несколько популярных протоколов, таких как OIDC, SAML 2.0, LDAP и CAS. В то же время NocoBase имеет полный набор интерфейсов расширения методов аутентификации, что позволяет быстро разрабатывать и подключать другие типы аутентификации. Вы можете легко подключить существующий провайдер удостоверений к NocoBase, чтобы централизованно управлять пользовательскими удостоверениями на его стороне и повысить безопасность.

Двухфакторная аутентификация
Редакция Enterprise
Двухфакторная аутентификация требует, чтобы при входе по паролю пользователь предоставлял второй фактор, подтверждающий его личность — на пример, одноразовый динамический код подтверждения, отправленный на доверенное устройство пользователя. Это помогает удостовериться, что учётная запись не будет неправомерно использована, и снижает риск, связанный с утечкой пароля.
Контроль доступа по IP
Редакция Enterprise
NocoBase поддерживает настройку чёрного списка или белого списка для IP-адресов доступа пользователей.
- В строго защищённой среде можно настроить белый список IP, чтобы разрешить доступ к системе только с определённых IP или диапазонов IP, ограничив несанкционированные подключения из внешней сети и снизив риски безопасности на уровне источника.
- При доступе из публичной сети, если администратор обнаруживает аномальные обращения, можно настроить чёрный список IP, чтобы блокировать известные вредоносные IP-адреса или обращения из подозрительных источников, снижая угрозы, такие как вредоносное сканирование и подбор пароля полным перебором.
- Для отклонённых запросов доступа сохраняются записи в логах.
Контроль прав доступа
Назначая разные роли в системе и задавая для ролей соответствующие права, можно детально контролировать доступ пользователей к ресурсам. Администраторы должны разумно настраивать права в соответствии с потребностями реальных сценариев, чтобы снизить риск утечки ресурсов системы.
Root пользователь
При первичной установке NocoBase приложение инициализирует root пользователя. Рекомендуется изменить данные root пользователя через переменные окружения системы, чтобы избежать злоупотреблений.
INIT_ROOT_USERNAME— имя пользователя rootINIT_ROOT_EMAIL— адрес электронной почты пользователя rootINIT_ROOT_PASSWORD— пароль пользователя root; задайте надёжный пароль.
При дальнейшей эксплуатации рекомендуется создать и использовать другие администраторские учетные записи и избегать прямого использования root пользователя для работы с приложением.

