Skip to content

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


Вы узнаете:

  • О модели и принципах безопасности Hakutest
  • Как настраивать Hakutest с точки зрения безопасности

Обзор

Безопасность — неотъемлемая часть Hakutest. Платформа реализует надежную модель безопасности, оставляя при этом возможности для настройки.

Модель безопасности

Модель безопасности Hakutest основана на ролях и политиках.

Роли определяют, какая страница или действие (маршрут) доступны определенному пользователю. Каждый маршрут отмечен как доступный для определенного набора ролей. По сути, интерфейс ученика доступен пользователям с ролью "ученик", а интерфейс учителя (такие страницы, как Панель управления, Меню тестов, Настройки и т. д.) доступен пользователям с ролью "учитель".

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

На данный момент Hakutest реализует 3 политики безопасности:

Для всех без верификации

Позволяет кому угодно получить доступ к маршруту без дополнительной проверки.

СОВЕТ

По умолчанию эта политика применяется для учеников.

По имени пользователя и паролю

Требуется авторизация пользователя путем ввода его учетных данных (имени пользователя и пароля).

Страница авторизации

После успешной авторизации Hakutest запоминает пользователя, поэтому при последующих запросах ввод учетных данных не требуется.

При использовании этой политики безопасности Hakutest'у необходимо хранить имена пользователей и пароли в базе данных. В настоящее время платформа поддерживает 3 диалекта:

  • SQLite (по умолчанию) — учётные данные хранятся в локальном файле.
  • MySQL
  • PostgreSQL

Информацию о настройке хранения данных пользователей см. ниже.

СОВЕТ

Для управления пользователями вы можете использовать любую админ-панель, совместимую с используемой базой данных. Hakutest хранит данные пользователей в таблице hakutest_users.

Только это устройство

Доступ к маршруту возможен только с того же устройства, на котором работает сервер (т.е. только с хоста). Это означает, что вы, как учитель, будете иметь доступ, а ваши ученики — нет.

СОВЕТ

По умолчанию эта политика применяется для учителя.

Конфигурация

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

Настройки безопасности Hakutest можно изменить в Настройках.

Настройки безопасности

ПараметрОписаниеК сведению
Политика безопасности (ученик)Политика безопасности, применяемая к интерфейсу ученика
Политика безопасности (учитель)Политика безопасности, применяемая к интерфейсу учителя
Диалект БД пользователейДиалект базы данных, в которой хранится информация о пользователях
DSN БД пользователейDSN (Data Source Name) базы данных, в которой хранится информация о пользователяхДля диалекта SQLite — путь к файлу базы данных.

Для диалектов MySQL и PostgreSQL — строка подключения

К СВЕДЕНИЮ

Все настройки безопасности требуют перезапуска для вступления в силу.

Типичные ошибки

ОСТОРОЖНО

Ни в коем случае не делайте то, что описано ниже!

Применение политики "Без верификации" к интерфейсу учителя

Это очень опасно. Это позволяет кому угодно получить доступ к интерфейсу учителя: изменять настройки, удалять тесты и результаты и т. д.

Применение политики "Только это устройство" к интерфейсу ученика

Это сделает Hakutest непригодным для использования, так как ученики не смогут получить доступ к тестам.

Изменение диалекта без изменения DSN

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

Hakutest распространяется под лицензией MIT.