Как получить имя домена / реферера из формы POST, если действие указывает на другой домен - PullRequest
0 голосов
/ 02 июня 2019

У меня есть форма на domain-x.com .Который отправляет данные формы в другую службу domain-y.com , которая ее обрабатывает.

<form method="POST" action="http://domain-y.com/">
  <input type="email" name="email" placeholder="Your email">
  <button type="submit">Send</button>
</form>

Как получить реферера или быть уверенным, что запрос этой формы исходит от domain-x.com ?

Я использую Symfony\Component\HttpFoundation\Request, но он не содержит никакой информации о domain-x.com

$_SERVER['HTTP_REFERER'] не работает

РЕДАКТИРОВАТЬ: Я не хочу менять свою форму.Проблема как-то через запрос, я должен быть в состоянии, откуда запрос приходит ...

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Вы можете добавить в скрытое поле.

<input type='hidden' name='referrer' value='<?=$_SERVER['SERVER_NAME']?>'/>

Публикация формы в совершенно другом домене, тем не менее, не является необычной.

Вы можете подделать $_SERVER['HTTP_REFERER'], так что либопуть не совсем надежный

Документация по HTTP_REFERER

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

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

0 голосов
/ 02 июня 2019

Причина, по которой я не мог найти бывшего.У реферира или любого другого заголовка идентификатора из запроса отсутствовал сертификат SSL на моем тестовом сервере.

Что означает в действии формы мне пришлось изменить URL с http to https и создание SSL-сертификата

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