Symfony 3 - 内容安全策略

阿图尔

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

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

我究竟做错了什么?

我已经尝试过:

阿图尔

好的,我找到了解决方案。我在我的代码中添加了一个事件订阅者,它设置了“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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Android WebView中禁用内容安全策略?

来自分类Dev

内容安全策略春季安全

来自分类Dev

每个页面的内容安全策略(CSP)?

来自分类Dev

chrome扩展程序的内容安全策略问题

来自分类Dev

Antisamy或内容安全策略,或同时用于防止XSS攻击

来自分类Dev

内容安全策略+框架祖先

来自分类Dev

内容安全策略对象SRC Blob

来自分类Dev

如何实施内容安全策略?

来自分类Dev

内容安全策略破坏console.log输出

来自分类Dev

Internet Explorer的内容安全策略(CSP)解决方法

来自分类Dev

如何使用元标记放宽内容安全策略

来自分类Dev

Google Adwords CSP(内容安全策略)img-src

来自分类Dev

Edge忽略内容安全策略中的script-src

来自分类Dev

自身子域的内容安全策略

来自分类Dev

Ionic和Socket.IO的内容安全策略

来自分类Dev

HTML标头内容安全策略未向文件报告

来自分类Dev

带有Paypal按钮的内容安全策略

来自分类Dev

什么是最大允许的内容安全策略?

来自分类Dev

使Angular使用限制性内容安全策略(CSP)

来自分类Dev

与Jekyll实施内容安全策略

来自分类Dev

如何“避免”内容安全策略?

来自分类Dev

内容安全策略+框架祖先

来自分类Dev

XSS和内容安全策略

来自分类Dev

内容安全策略停用

来自分类Dev

内容安全策略:源数据

来自分类Dev

内容安全策略警告

来自分类Dev

Safari 内容安全策略支持

来自分类Dev

如何为 S3 中上传的文件启用 AWS-S3 安全策略

来自分类Dev

在 PhantomJS 中禁用内容安全策略