src/EventSubscriber/SecurityHeadersSubscriber.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use JetBrains\PhpStorm\ArrayShape;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class SecurityHeadersSubscriber implements EventSubscriberInterface
  9. {
  10.     public function onKernelResponse(ResponseEvent $event): void
  11.     {
  12.         $response $event->getResponse();
  13.         $response->headers->set('X-Content-Type-Options''nosniff');
  14. //        $response->headers->set('X-Frame-Options', 'SAMEORIGIN');
  15.         $response->headers->set('X-XSS-Protection''1; mode=block');
  16. //        $response->headers->set('Content-Security-Policy', "default-src 'self'; script-src 'self' 'nonce-fb36db628485fc3a388a259581f9057d';");
  17.         if ($response->getStatusCode() === Response::HTTP_OK) {
  18.             $response->headers->set('Strict-Transport-Security''max-age=31536000; includeSubDomains; preload');
  19.         }
  20.     }
  21.     #[ArrayShape([KernelEvents::RESPONSE => "string"])] public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             KernelEvents::RESPONSE => 'onKernelResponse',
  25.         ];
  26.     }
  27. }