src/EventListener/RequestListener.php line 9

  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  4. class RequestListener
  5. {
  6.     public function onKernelResponse(ResponseEvent $event): void
  7.     {
  8.         if (!$event->isMainRequest()) {
  9.             return;
  10.         }
  11.         if ('1' === $_ENV['FERRERO_HEADERS'] && 'test' !== $_ENV['APP_ENV']) {
  12.             $event->getResponse()->headers->add([
  13.                 'X-XSS-Protection' => "1; mode=block",
  14.                 'X-Frame-Options' => "DENY",
  15.                 'X-Content-Type-Options' => "nosniff",
  16.                 'Content-Security-Policy' => "object-src 'multimedia plugins like Adobe Flash' {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr ; script-src  'self' 'unsafe-inline' 'JavaScript code'  code.jquery.com www.nutella.com static.addtoany.com www.google.com www.gstatic.com www.google.com {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr ferrero.containers.piwik.pro cdnjs.cloudflare.com www.googletagmanager.com cdn.cookielaw.org ; form-action 'self'; frame-ancestors 'self' {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']}; connect-src 'XMLHttpRequest' WebSockets EventSource {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr cdn.cookielaw.org ; font-src 'fonts' {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr fonts.gstatic.com  ; frame-src 'frame' www.google.com  static.addtoany.com {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr ; img-src 'images' www.nutella.com {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr sogec-marketing.web.oxv.fr www.static.ferrero.com data: cdn.cookielaw.org  ; media-src 'audio/video' {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr ; style-src 'CSS sheets' {$_ENV['RQST_CTXT_HOST']} {$_ENV['DOMAIN']} www.jeu2024.jeu-jpchenet.fr www.google.com fonts.googleapis.com 'unsafe-inline' cdnjs.cloudflare.com;",
  17.                 'Strict-Transport-Security' => "max-age=63072000; includeSubDomains; preload;",
  18.                 'Permissions-Policy' => "camera=none",
  19.                 'Referrer-Policy' => "no-referrer-when-downgrade",
  20.             ]);
  21.         } else {
  22.             $event->getResponse()->headers->add([
  23.                 'X-XSS-Protection' => "1; mode=block",
  24.                 'X-Frame-Options' => "DENY",
  25.                 'X-Content-Type-Options' => "nosniff",
  26.                 'Content-Security-Policy' => "object-src 'none'; script-src 'self' 'unsafe-inline' js-agent.newrelic.com code.jquery.com www.nutella.com  static.addtoany.com www.google.com www.gstatic.com ; form-action 'self'; frame-ancestors 'self';",
  27.                 'Strict-Transport-Security' => "max-age=63072000; includeSubDomains; preload;",
  28.             ]);
  29.         }
  30.     }
  31. }