Javascript создает iframe, но iframe не может получить http_referer - PullRequest
0 голосов
/ 22 января 2019

У меня есть код Javascript, который генерирует iframe, например, так:

var ifrm = document.createElement("iframe");
       ifrm.setAttribute("src", "https://IFRAMEURL");
       ifrm.style.width = "0px";
       ifrm.style.height = "0px";
       document.body.appendChild(ifrm);

И внутри этого URL-адреса iframe у меня есть такой код PHP *

$url = $_SERVER['HTTP_REFERER'];

Однако этот iframe не может получитьhttp_referer Я думаю, потому что он генерируется динамически.

Код, когда не используется динамически генерируемый iframe, работает нормально.

Есть ли какое-либо исправление или обходной путь для получения HTTP_REFERER?

Редактировать: я также не контролирую родительский URL.Родительский URL добавляет код JS, поэтому я не могу передавать другие переменные.

1 Ответ

0 голосов
/ 22 января 2019

Из официальной документации PHP:

Адрес страницы (если есть), на которую пользовательский агент направил текущая страница. Это устанавливается пользовательским агентом. Не все пользовательские агенты будут установите это, а некоторые предоставляют возможность изменять HTTP_REFERER как особенность. Короче говоря, этому нельзя доверять.

http://php.net/manual/en/reserved.variables.server.php

чтобы предотвратить уведомление вы можете сделать

$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";

Но если вы ищете более надежные решения, лучше справиться с этим самостоятельно. Если вы управляете предыдущей страницей, вы можете передать URL-адрес в качестве параметра site.com/page2.php?prevUrl=".urlencode("site.com/page1.php).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...