Laravel отказывается отображаться в iFrame как «X-Frame-Options» для «SAMEORIGIN». & Quot;

Поэтому я создал форму в Laravel и размещаю ее снаружи, но я хочу отобразить ее на HTML-странице, но у меня возникают проблемы с X-Frame-Options.

Точное сообщение об ошибке:

Refused to display 'url' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

В предыдущих ответах StackOverflow я видел, что это происходит из-за промежуточного программного обеспечения FrameGuard, но с тех пор оно было удалено, и строки с кодом проблемы нет в этом файле.

Laravel Версия 5.3.

Я также попытался установить X-Frame-Options в конфигурационном файле Nginx, используя настил без результата:

sed -i 's/http\ {/http\ {\nadd_header X-Frame-Options SAMEORIGIN, false;\n\n/' /etc/nginx/nginx.conf

Эта ошибка возникает в нескольких браузерах, протестированных: Chrome & Сафари

4

Решение

Установите свой заголовок на ответ от кадра до

X-Frame-Options: ALLOW-FROM https://example.com/

где example.com — домен, запрашивающий форму.

Вы можете использовать промежуточное программное обеспечение в Laravel, чтобы сделать это.

Создайте новое промежуточное ПО.

php artisan make:middleware FrameHeadersMiddleware

затем в функции handle только что созданного промежуточного программного обеспечения сделайте что-то вроде

namespace App\Http\Middleware;
use Closure;

public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('X-Frame-Options', 'ALLOW FROM https://example.com/');
return $response;
}

Затем вы можете добавить это в один из промежуточных массивов в Kernel.php

protected $middleware = [
App\Http\Middleware\FrameHeadersMiddleware::class
];

Или к одному из массивов группы промежуточного программного обеспечения, если вы хотите добавить его только к определенным маршрутам.

3

Другие решения

В моем случае, Nginx был тем, кто препятствовал доступу.

Бежать:

grep -ri "X-Frame-Options" /etc/nginx

И проверьте вывод:

/etc/nginx/snippets/ssl-params.conf:add_header X-Frame-Options DENY;

После замены ОТРИЦАТЬ в SAMEORIGIN все начало работать как положено.

6

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector