Метод forceHttps у Laravel забезпечує простий спосіб примусового використання HTTPS для всіх згенерованих URL-адрес у вашому додатку. Ця функція гарантує, що ваші посилання, перенаправлення та ресурси завжди використовують захищені з'єднання у продуктивному середовищі
Цей підхід особливо цінний для додатків, які обробляють чутливі дані, оскільки запобігає попередженням про змішаний контент і забезпечує однорідну безпеку на всьому сайті
// Просте примусове використання у продуктивному середовищі
URL::forceHttps($app->isProduction());
// Більш детальний контроль середовища
URL::forceHttps(
$app->environment(['production', 'staging'])
);
Ось приклад впровадження комплексних заходів безпеки:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$this->configureSecureUrls();
}
protected function configureSecureUrls()
{
// Визначаємо, чи потрібно примусово використовувати HTTPS
$enforceHttps = $this->app->environment(['production', 'staging'])
&& !$this->app->runningUnitTests();
// Примусове використання HTTPS для всіх згенерованих URL
URL::forceHttps($enforceHttps);
// Переконуємося, що встановлено правильну серверну змінну
if ($enforceHttps) {
$this->app['request']->server->set('HTTPS', 'on');
}
// Налаштування глобального посередника для заголовків безпеки
if ($enforceHttps) {
$this->app['router']->pushMiddlewareToGroup('web', function ($request, $next){
$response = $next($request);
return $response->withHeaders([
'Strict-Transport-Security' => 'max-age=31536000; includeSubDomains',
'Content-Security-Policy' => "upgrade-insecure-requests",
'X-Content-Type-Options' => 'nosniff'
]);
});
}
}
}
Метод forceHttps спрощує управління безпекою URL, інтегруючись з конфігураціями, специфічними для середовища