получить реферер сайта, запрашивающего ваш файл js - PullRequest
1 голос
/ 05 августа 2010

У меня есть скрипт для встраивания, который просто делает это:

document.write(unescape('%3Cscript src="' + mp_protocol + 'blah.cloudapp.net/js?location="' + window.location +' type="text/javascript"%3E%3C/script%3E'));

Как вы можете видеть прямо сейчас, URL веб-страницы, которая внедряет код, передается с помощью window.location. Но это может быть легко отредактировано клиентом.

Я хотел знать, смогу ли я получить реферера вместо передачи URL. Я не был уверен, будет ли передана справочная информация, так как этот скрипт встроен?

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

1 Ответ

3 голосов
/ 05 августа 2010

Браузер обычно отправляет заголовок «Referer» (sic) для запросов сценария, которые содержат URL-адрес страницы, содержащей ссылку на сценарий, независимо от того, как был создан этот элемент сценария.

Это доступно путем проверки HTTP-переменной «Referer» (обратите внимание на необычное написание).

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

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

...