如何为X-Frame-Options配置symfony2?

Cod*_*ode 0 apache .htaccess symfony

如何在我的symfony2应用程序中停止clickjacking?

经过研究,我发现我应该在.htaccess文件中添加以下行

标题附加X-FRAME-OPTIONS"DENY"

但在添加.htaccess文件后,我收到"内部服务器错误"

FYI

我添加了x-frame选项行,如下所示.

<IfModule mod_rewrite.c>
    RewriteRule .? %{ENV:BASE}/app_dev.php [L]
    Header append x-frame-options "DENY"
</IfModule>
Run Code Online (Sandbox Code Playgroud)

是否还有其他选项可以在symfony2中应用X-frame-options?

kli*_*ach 6

看起来您无权在apache中修改标头.如果要在Symfony中执行此操作,则应创建ResponseListener并为每个响应添加标头.这是一个例子:

ResponseListener.php:

use Symfony\Component\HttpKernel\Event\FilterResponseEvent;

class ResponseListener
{
    public function onKernelResponse(FilterResponseEvent $event)
    {   
        $event->getResponse()->headers->set('x-frame-options', 'deny');
    }   
}
Run Code Online (Sandbox Code Playgroud)

services.yml

kernel.listener.response_listener:
    class: MyCorp\MyBundle\Listener\ResponseListener
    tags:
       - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
Run Code Online (Sandbox Code Playgroud)