如何在symfony2应用程序中停止点击劫持?
经过研究,我发现我应该在.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>
在symfony2中是否还有其他选项可以应用X-frame-options?
答案 0 :(得分:5)
看起来你无权在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');
}
}
<强> services.yml 强>
kernel.listener.response_listener:
class: MyCorp\MyBundle\Listener\ResponseListener
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
答案 1 :(得分:0)
感谢Klipach的帮助,
我正在编写另一个替代方案来启用X-frame-options
在.htaccess文件中添加以下行
Header append x-frame-options "SAMEORIGIN"
如果您收到内部服务器错误。这意味着禁用标头模块 所以使用下面的命令启用
sudo a2enmod headers
sudo service apache2 restart