Безопасность веб-приложений — важнейший аспект в разработке Doka 2.5. Система построена с учетом современных стандартов безопасности и включает защиту от наиболее распространенных атак.
Веб-приложения могут подвергаться множеству атак. В Doka 2.5 предусмотрены механизмы защиты от:
Использование ORM (CodeIgniter Model, Doctrine, Eloquent) и подготовленных SQL-запросов предотвращает возможность внедрения вредоносного кода.
Все входные данные фильтруются и экранируются перед выводом в браузер.
Каждый POST-запрос требует CSRF-токен, предотвращающий подмену запросов.
Система ограничивает количество запросов к API, предотвращая DDoS-атаки.
Пароли пользователей хранятся в зашифрованном виде с использованием bcrypt:
$password = password_hash('securePassword123', PASSWORD_DEFAULT);
При аутентификации пароли проверяются следующим образом:
if (password_verify($inputPassword, $user['password_hash'])) {
echo "Пароль верный!";
} else {
echo "Ошибка: неверный пароль!";
}
При регистрации пользователю отправляется письмо с проверочной ссылкой. Аккаунт активируется только после подтверждения email.
$verificationToken = bin2hex(random_bytes(16));
$model->save([
'email' => 'user@example.com',
'password_hash' => password_hash('password123', PASSWORD_DEFAULT),
'is_verified' => 0,
'verification_token' => $verificationToken
]);
// Отправка email
$email = \Config\Services::email();
$email->setTo('user@example.com');
$email->setSubject('Подтвердите ваш email');
$email->setMessage('Для активации аккаунта перейдите по ссылке:
http://doka25c.local/verify?token=' . $verificationToken);
$email->send();
API использует JSON Web Token (JWT) для идентификации пользователей.
Все соединения с сервером должны проходить через HTTPS, защищая данные от MITM-атак.
В системе реализована ролевая модель доступа для пользователей.
Все события системы записываются в логи. Настроено автоматическое уведомление при подозрительных действиях.