🔥
How To: 6 частых ошибок безопасности в Laravel и как их исправитьLaravel — мощный и популярный фреймворк. Но вместе с популярностью он становится и мишенью для атак. Даже опытные разработчики иногда допускают ошибки, которые открывают лазейки для злоумышленников.
1️⃣
Завершаем все сессии после смены пароляОшибка: при смене пароля старые сессии на других устройствах остаются активными.
Исправление: используйте
logoutOtherDevices().
👉 Почему важно: если токен украден, злоумышленник вылетит сразу после смены пароля.
2️⃣ Безопасная загрузка файловОшибка: прямая ссылка на файлы (
/storage/invoices/invoice1.pdf) позволяет угадывать URL.
Исправление: генерируйте временные подписанные ссылки (
URL::temporarySignedRoute).
👉 Почему важно: даже при утечке ссылка перестанет работать после срока действия.
3️⃣ Правильное связывание моделей в маршрутахОшибка: без scoping пользователь может подставить чужой ID.
Исправление: используйте
->scopeBindings().
👉 Почему важно: предотвращает горизонтальную эскалацию прав.
4️⃣
Уникальные имена файловОшибка: сохранение файлов под оригинальными именами ведёт к перезаписи.
Исправление: используйте UUID (
Str::uuid()).
👉 Почему важно: два
profile.jpg больше не сотрут друг друга.
5️⃣ Шифруем ID в URLОшибка: последовательные ID легко перебирать.
Исправление: шифруйте идентификаторы (
Crypt::encryptString).
👉 Почему важно: атаки через инкремент ID становятся невозможны.
6️⃣
Шифрование чувствительных данных в БДОшибка: хранение API-ключей и персональных данных в открытом виде.
Исправление: используйте встроенные касты (
'api_key' => 'encrypted').
👉 Почему важно: даже при утечке базы данные останутся зашифрованы.
🔗
Читать статьюБиблиотека пхпшника