gpt4 book ai didi

laravel - 未为某些 Laravel 路由设置 .htaccess X-Frame-Options header

转载 作者:行者123 更新时间:2023-12-03 08:58:33 31 4
gpt4 key购买 nike

我们有一个 Laravel 应用程序 (Laravel 5.6.35),我们在/public 文件夹中使用 .htaccess 设置 X-Frame-Options header 。

<IfModule mod_rewrite.c>
...
</IfModule>
<IfModule mod_headers.c>
# Prevent click jacking
Header set X-Frame-Options Deny
Header always append X-Frame-Options SAMEORIGIN
</IfModule>

这在本地开发环境(Laravel、PHP 7.1.23、Apache2、Vagrant 上的 Debian 8.11)上运行良好。所有响应都设置了 X-Frame-Options header 。

测试服务器上的设置完全相同(除了不是 Vagrant),只有静态内容(css、js、图像)包含 X-Frame-Options header ,但所有 Laravel 生成的内容(任何通过索引的内容) .php) 没有设置 X-Frame-Options header 。

看似相同的设置怎么可能会有不同的结果?
我们如何为所有路由设置 X-Frame-Options header ?

(两个服务器上都启用了 headers_module)

最佳答案

最后,我将 X-Frame-Options 添加到 .htaccess 中并作为 Laravel 中的中间件。这样,Laravel 路由和 /css/public 等静态内容都可以正常工作。

文件:app/Http/Kernel.php

protected $middlewareGroups = [
'web' => [
...,
\App\Http\Middleware\XFrameHeaders::class,
]
],

新文件:app/Http/Middleware/XFrameHeaders.php

<?php namespace App\Http\Middleware;
use Closure;
class XFrameHeaders {
public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('X-Frame-Options', 'deny');
//add more headers here
return $response;
}
}

在 .htaccess 中(删除“ header 始终附加”部分):

<IfModule mod_headers.c>
# Prevent click jacking
Header set X-Frame-Options Deny
</IfModule>

关于laravel - 未为某些 Laravel 路由设置 .htaccess X-Frame-Options header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53008302/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com