Какие возможные проблемы для безопасности есть в данном примере авторизации на php?

На собеседовании получил задание сделать код ревью. Мои замечания были:

  1. Пароль в БД храниться в открытом виде без хеширования
  2. При передаче user_id не приводим к числу (там может быть что угодно, включая иньекцию)
  3. Пароль пользователя храниться в куках - вместо этого я бы хранил id сессии
<?php

$userProfile = unserialize($_COOKIE['user_profile']);
$user = new User();
$user->importById($userProfile['user_id']);

if ($userProfile['password_hash'] != md5($user->getPassword())) {
   throw new Exception('Permission denied');
}

(new UserProfileController((int)$userProfile['user_id']))->run();

Ответы (0 шт):