javascript - Symfony 3 - 内容安全政策

标签 javascript php symfony content-security-policy easyadmin

我对内容安全策略有疑问。每当我尝试将 JavaScript 包含到我的项目中时,我都会收到内容安全策略错误。

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

我做错了什么?

我已经尝试过:

最佳答案

好的,我找到了解决方案。我在我的代码中添加了一个事件订阅者,它设置了“Content-Security-Policy” header 。

<?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

关于javascript - Symfony 3 - 内容安全政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48787745/

相关文章:

php - Symfony2 查询生成器 "SELECT where sum children > 0"

javascript - 使用 javascript 将 iso8601 日期时间字符串映射到儒略日

javascript - 如何隐藏元素onclick jquery

php - 我们发现 'Spreadsheet.xlsx' 中的某些内容存在问题。你想让我们尽可能多地恢复吗?

php - curl - 从网站上抓取大量内容

symfony - 分块上传验证: "The file could not be uploaded."

javascript - 导航至 Bootstrap 步骤向导中的任何步骤

javascript - bootstrap mega 菜单,如何更改为 onclick 功能并为移动设备下拉元素?

php - 如何显示 Wordpress 搜索结果?

symfony - 如何在 Symfony 4 中验证数组数组