Это не то, что я сказал. Если вы используете cookie-файл, вы можете убедиться, что cookie-файл установлен при посещении страницы A, а затем B может проверить этот cookie-файл. HTTP_REFERER генерируется браузером, поэтому ему нельзя доверять.

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

Как мне это сделать в JavaScript (AJAX)?Могу ли я сделать это в ASP.Net?

ТИА баранов

Ответы на вопрос(3)

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

Если вы просто хотите проверить реакцию вашей страницы на определенные заголовки (например, «Referer:»), вы можете использовать такие инструменты командной строки, каклокон или жеWget которые доступны в большинстве вариантов BSD и Linux (включая OS / X). Если вы используете MS Windows, вы можете получить curl или wget, используяCygwin.

    wget -O - --referer="http://example.com/some/path" http://example.com/

или же

    curl -e "http://example.com/some/path" http://example.com/

Но я думаю, что ваша основная причина для этого - «защитить» страницу. Если вы действительно хотите убедиться, что страница (назовите ее «B») посещается только после того, как какая-то другая страница («A») была посещена первой, вам потребуется более сложная логика на стороне сервера.

Если вы храните cookie-файл сеанса, вы можете встроить некоторую логику на страницу «A», которая устанавливает логическую переменную. Затем добавьте логику на странице «B», которая проверяет, установлена ​​ли переменная.

Я оставлю это в качестве упражнения для читателя, чтобы выяснить, как это сделать в ASP.NET. (Потому что я программист PHP.; -])

 ghoti06 июн. 2014 г., 20:40
Это не то, что я сказал. Если вы используете cookie-файл, вы можете убедиться, что cookie-файл установлен при посещении страницы A, а затем B может проверить этот cookie-файл. HTTP_REFERER генерируется браузером, поэтому ему нельзя доверять.
 Pacerier06 июн. 2014 г., 19:58
Почему вы говорите, что проверка рефералов не может гарантировать, что «страница B запускает логику только после посещения страницы A»?

поступает ли запрос с «правильной» страницы, вам не нужно подделывать реферер. Все, что вам нужно сделать, это отправить запрос с другой страницы. Настройте страницу по URL, отличному от того, который вы считаете «правильным», и отправляйте запросы оттуда, либо щелкнув ссылку на страницу назначения, либо поместив изображение, полученное из пункта назначения.

 Rob Kennedy06 июн. 2014 г., 20:42
@Pacerier, он спрашивает: «Как я могу решить проблему X, выполняя Y?» Мой ответ состоит в том, что ему действительно не нужно делать Y, чтобы решить X. В этом случае X должен проверить, что страница может обнаружить реферер; Y подделать реферер.
 Pacerier06 июн. 2014 г., 20:01
@Rob, Почему вы говорите ему: «Вам не нужно обманывать реферала»? Это кажется неуместным, когда он спрашиваеткак может ли реферер быть подделан.
 rams06 мар. 2009 г., 00:10
Страница вызова из приложения клиента, к которому у меня нет доступа. Поэтому вместо того, чтобы кодировать в темноте, мне нужно «подделать» реферер и проверить мою страницу.
Решение Вопроса

вы не можете заставить другие браузеры возвращать ложный HTTP_REFERER без эксплойта, плагина или другого расширения. Если вы хотите изменить значение, отправленное из вашего веб-браузера, и вы используете FireFox, посмотрите наИзменить заголовки расширение.

В любом случае, вы никогда не должны полагаться на точность HTTP_REFERER. Нет никакой гарантии, что полученный вами HTTP_REFERER не является фальшивым или просто не отправлен.

 rams06 мар. 2009 г., 00:10
спасибо за ссылку. Я проверю это.
 GiDo22 июл. 2015 г., 11:22
Если вы используете ChromeModHeader расширение делать работу!

Ваш ответ на вопрос