javascript — Symfony 3 — Политика безопасности контента

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

<!DOCTYPE html>
<html>
<head>
<title>Symfony</title>
<script src="{{ asset('myscript.js') }}"></script>
</head>
<body>
// ...
</body>
</html>

Что я делаю неправильно?

Я уже пробовал с:

1

Решение

Хорошо, я нашел решение. Я добавил в свой код подписчика на события, который устанавливает заголовок «Content-Security-Policy».

<?php

namespace AppBundle\Subscriber;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;

/**
* Class ResponseSubscriber
* @package AppBundle\Subscriber
*/
class ResponseSubscriber implements EventSubscriberInterface
{
/** @inheritdoc */
public static function getSubscribedEvents()
{
return [
KernelEvents::RESPONSE => 'onResponse'
];
}

/**
* Callback function for event subscriber
* @param FilterResponseEvent $event
*/
public function onResponse(FilterResponseEvent $event)
{
$response = $event->getResponse();

$policy = "default-src 'self' 'unsafe-inline';". "script-src 'self' 'unsafe-inline'";

$response->headers->set("Content-Security-Policy", $policy);
$response->headers->set("X-Content-Security-Policy", $policy);
$response->headers->set("X-WebKit-CSP", $policy);
}
}

а также

# app/config/services.yml
services:
# ...
app.responseSubscriber:
class: AppBundle\Subscriber\ResponseSubscriber
autowire: true
3

Другие решения

Других решений пока нет …