Вы читаете предварительную версию v0.1. API могут измениться.
~ 1 мин чтенияОбновлено 2026-10-29

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

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

Пароли

use Elang\Security\Password;

$hash = $passwords->hash($plainTextPassword);
$isValid = $passwords->verify($submittedPassword, $storedHash);

Сервис использует API паролей PHP с Argon2id. После успешной проверки используйте needsRehash(), чтобы определить, нужно ли обновить сохранённый хеш. Убедитесь, что сборка PHP поддерживает Argon2id.

Шифрование

use Elang\Security\Encryption;

$ciphertext = $encryption->encrypt('private value');
$plaintext = $encryption->decrypt($ciphertext);

Sodium secretbox проверяет подлинность зашифрованных данных и использует новый nonce. Отсутствующий или недопустимый APP_KEY не позволяет создать сервис шифрования. Храните ключ в безопасности; в этой предварительной версии ротация ключа выполняется вручную.

Сессии и CSRF

Зарегистрируйте SessionMiddleware, а затем CsrfMiddleware. Внедрите Elang\Security\Csrf и вызывайте $csrf->token($request) при отображении формы. Добавьте токен в скрытое поле _token или в заголовок X-CSRF-Token.

Cookie сессии используют HttpOnly и SameSite=Lax, а при HTTPS-запросе также Secure. После аутентификации обновляйте идентификатор сессии с помощью $request->getSession()->migrate(true).

Защита ответов

Ядро задаёт строгую Content Security Policy, запрет отображения во фреймах, защиту от определения MIME-типа по содержимому и политику передачи источника перехода. Ошибки JSON и HTML содержат идентификаторы запросов. Ответы с ошибками в рабочей среде скрывают внутренние сообщения исключений.

Сообщение о проблеме

Не публикуйте учётные данные или подробности эксплуатации уязвимости в публичной задаче. Текущие правила сообщения о проблемах приведены в SECURITY.md репозитория. Эта предварительная версия не проходила независимый аудит безопасности.

Нужна помощь?

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

Поиск по документации Elang

Начните вводить, чтобы найти следующий шаг.