Встраивание Google Trends и X-Frame-Options

1

Попытка использовать скрипт вставки из Google Trends приводит к следующей ошибке в Chrome.

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

Я поместил скрипт в тело index.html и размещал его локально, а также на внешнем сервере.

Из того, что я могу собрать, это остановить "clickjacking", но кажется странным, что сценарий, предоставляемый Google, не работает с собственным браузером. Firefox работает отлично.

Является ли это фундаментальной проблемой, когда Google Тренд просто не работает с собственными продуктами Google, или это проблема с настройкой моего сервера?

Теги:
embed
google-trends
x-frame-options

2 ответа

0

Это связано с тем, что ваш браузер настроен на блокировку сторонних файлов cookie. Включите сторонние файлы cookie и встроенные тренды Google iframe.

Если вы внимательно посмотрите на неудачный запрос iframe, он содержит этот заголовок:

p3p: CP = "Это не политика P3P! См. g.co/p3phelp для получения дополнительной информации".

Заголовок ссылается на эту страницу с этим объяснением:

В некоторых ситуациях файлы cookie, которые мы используем для защиты и аутентификации вашей учетной записи Google, и сохраняем ваши предпочтения, могут обслуживаться из другого домена, чем веб-сайт, который вы посещаете. Это может случиться, например, если вы посещаете веб-сайты с помощью кнопок Google +1.

Для некоторых браузеров сторонние куки файлы должны использовать протокол P3P, чтобы заявить о своей практике конфиденциальности. Однако протокол P3P не был разработан с учетом подобных ситуаций. В результате мы добавили ссылку в наши файлы cookie, которая направляет пользователей на страницу, где они могут узнать больше о правилах конфиденциальности, связанных с этими куки файлами.

0

Я столкнулся с той же проблемой задолго до того, как я работал с моим проектом, основанным на весне. Одна вещь, которую я могу сказать вам заранее, что это не проблема с тенденциями Google, и вам нужно решить ее с небольшими изменениями в вашем запросе. С вашими заголовками запросов вам нужно отправить дополнительный заголовок X-Frame-Options и установить его значение SAMEORIGIN.

Я не даю подробностей об этом, потому что подобная проблема уже обсуждалась здесь.

Надеюсь это поможет!!!

ОБНОВЛЕНИЕ 1:

Не путайте X-Frame-Options и фрейм, который вы встраиваете. Когда вы пытаетесь внедрить фрейм на свою веб-страницу, браузер проверяет, разрешаете ли вы SAMEORIGIN или нет. По умолчанию он не включен, поэтому вы получаете ошибку. Но в вашем внутреннем коде, если вы настраиваете такой способ, который с каждым запросом, ваша инфраструктура добавляет заголовок как X-Frame-Options со значением как SAMEORIGIN тогда браузер позволит это. Обратите внимание, что SAMEORIGIN разрешает каждую веб-страницу на вашем веб-сайте и может вызвать проблемы с безопасностью. Таким образом, еще один вариант заключается в том, что вместо того sameorigin вы, вы просто установили сайт Google Trends с тегом ALLOW-FROM.

(В соответствии с вашим комментарием вы используете структуру Laravel (я никогда не использовал php), эта ссылка может быть полезна для вас. Или вы можете использовать Google для "как установить x-frame-options sameorigin в laravel".

  • 0
    Спасибо за ответ. Как именно я бы отправил дополнительный заголовок с клиента на сервер? Я был под впечатлением , что X-Frame-Options был послан Google, а не к ним.
  • 0
    Какой серверный фреймворк / язык вы используете? Я использовал Spring Framework, поэтому я настроил его в файле SecurityConfig.java .
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню