Безопасность в Laravel: Как защитить ваше приложение Часть 3


Происхождение запросов

В вашем приложении вы можете получать запросы с нескольких сайтов. Это может быть webhook, мобильное приложение, запросы от Javascript-проекта и т.д.

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

Короче говоря, список доверия может работать, если мы знаем, какие источники мы собираемся разрешить. Но что, если мы этого не знаем?

Возможно, неизвестное происхождение может попытаться отправить непроверенные запросы. В этом случае Laravel снова предоставляет отличный инструмент из коробки. Мы можем использовать промежуточное программное обеспечение throttles для защиты маршрута или группы маршрутов от вредоносных запросов. Это одна из лучших практик безопасности Laravel, которую следует учитывать.

Route::get('dashboard', DashboardController::class)    ->middleware('throttle:3,10');
Вход в полноэкранный режим Выход из полноэкранного режима

Параметр param:3,10 означает, что он разрешает 3 запроса в течение 10 минут. При четвертом запросе браузер выдаст ошибку 429. Если это запрос, имеющий content-type: application/json и accept: application-json, он вернет ответ со статусом 429 и сообщение с исключением.

Вы можете пойти еще дальше и добавить RateLimiter в app/Providers/RouteServiceProvider.php:

protected function configureRateLimiting() 
{  
    RateLimiter::for('global', function (Request $request) {
        return Limit::perMinute(1000);     
    }); 
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Затем в файле маршрута вы можете определить маршрут следующим образом:

Route::get('dashboard', DashboardController::class)->middleware('throttle:global');
Вход в полноэкранный режим Выход из полноэкранного режима

Если вы хотите глубже изучить ограничитель скорости, вы можете посетить этот ресурс. А если вы хотите получить что-то более надежное в плане списка доверия, вот отличный пакет для добавления реализации белого списка.

Не доверяйте сайтам без SSL-сертификата

Сайт, не имеющий SSL-сертификата, не должен быть допущен. Никакие данные не должны передаваться без надлежащего шифрования, так как это может привести к потенциальной атаке «человек посередине», в результате которой ваши данные могут быть раскрыты.

Наконец, не передавайте идентификаторы сеанса или файлы cookie через незащищенные соединения, не использующие протокол HTTPS. Это также может привести к раскрытию конфиденциальных данных.

Оцените статью
Procodings.ru
Добавить комментарий