2009-09-07 5 views
5

Изображение двух веб-страниц, которые просматриваются с использованием https. Они проживают в разных доменах.http_referer потеряно с использованием https

Как я могу (разумно) убедиться, что кто-то, прибывший на мою страницу, пришел через гиперссылку, которая находится в другом (конкретном) домене? Я только хочу разрешить трафик из этого домена. Любые идеи о наилучшем способе достижения этого будут оценены.

Я пробовал смотреть HTTP_REFERER, но, судя по всему, он не отправляется в этом случае. Я знаю, что HTTP RFC указывает, что не отправляет информацию реферера из https -> http, но относится ли это также к https -> https через домены или сертификаты ssl?

Мой домен работает на ASP.NET, если это имеет значение. Я не контролирую исходный домен.

спасибо.

+4

Referer легко подделано, я не рекомендую –

+3

Я знаю, что реферер может быть подделан. Я понимаю, что я не могу удержать всех. Мне нужно решение, которое будет работать достаточно хорошо, чтобы избежать случайного любопытства и заставить людей делать закладки на целевом сайте, заставляя их прибывать через сайт, на котором я не контролирую. – BlueRonin

ответ

5

ли или нет РЛК позволяют отправку HTTP_REFERER или нет, вы обнаружите, что многие веб-клиентов и/или прокси-серверы или другие шлюзы конфиденциальности связанных между ним и сервером будет удалить или подменить HTTP_REFERER в заголовок, израсходованный большинство «аутентификации» на основе http_referer, частично функционирует в лучшем случае.

Если у вас есть сотрудничество с хранителем первого https-сервера, вы можете договориться о прохождении через хэш-код с типом + something_else в запросах на ваш сервер. Проверяя хэш-код на вашем конце, вы узнаете, что ваш посетитель https пришел с другого сервера [совсем недавно].

6

Разрабатывая ответ mjv: вы должны поместить HMAC (RFC 2104) в URL-адрес. Имейте общий секрет между двумя серверами и создайте исходный сервер для ссылок на форму/timestamp/hmac/path. Hmac должен быть проверен с помощью hmac (key, timestamp + path), так что разные изображения генерируют разные hmac. Затем целевой сервер может решить, достаточно ли времени, чтобы произойти от перенаправления.

Вы также можете ограничить это, поставив IP-адрес клиента в hmac, полагая, что тот же клиент, который получил URL-адрес, также разрешает его. Это может быть подвержено ошибкам, хотя в присутствии HTTP-прокси, которые обрабатывают только http, а не https или наоборот.

0

Если у вас нет контроля над ссылочным сайтом, вам не повезло.

Присылайте ссылку, если хотите, и если она отсутствует, запустите целевую страницу, в которой говорится: «Нажмите здесь, перейдите на сайт A, чтобы вы могли вернуться сюда».

Кроме того, проведите некоторое время, работая над более надежным способом доступа к вашему «защищенному» сайту.

+0

Это моя проблема, факт, что реферер отсутствует, когда кто-то прибывает с сайта А. Мне нужно, чтобы ошибка «go to site A» появилась для всех остальных. Что касается доступа к сайту, сайт А направляет людей на мою страницу входа. Они не могут многое сделать без логина, кроме восхищения работой моих графических дизайнеров. – BlueRonin

Смежные вопросы