2009-03-27 1 views
6

Можно ли определить, выполняется ли входящий запрос через прокси-сервер? Если веб-приложение «запрещает» пользователей через IP-адрес, они могут обойти это с помощью прокси-сервера. Это лишь одна из причин блокировки этих запросов. Как это можно достичь?Как узнать, поступает ли запрос от прокси?

ответ

6

ИМХО нет 100% надежного способа для достижения этой цели, но наличие любых из следующих заголовков является сильным признаком того, что запрос был направлен от прокси-сервера:

via: 
forwarded: 
x-forwarded-for: 
client-ip: 

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

0

Вы можете искать эти заголовки в Object Request и, соответственно, решить, является ли запрос через прокси-сервер/не

1) Via 2) X-Forwarded-For

отметить, что это не 100% уверенный трюк, зависит от того, предпочитают ли эти прокси-серверы добавлять выше заголовки.

7

Если прокси-сервер настроен правильно, чтобы избежать обнаружения прокси-серверов, вы не сможете сказать.

Большинство прокси-серверов поставляют заголовки, как упоминают другие, но те не присутствуют на прокси-серверах, предназначенных для полного скрытия пользователя.

Для обнаружения таких ситуаций вам необходимо будет использовать несколько методов обнаружения, таких как куки, определение заголовка прокси и, возможно, IP-эвристика. Обратите внимание на http://www.osix.net/modules/article/?id=765 для получения информации об этой ситуации. Также рассмотрите использование черного списка прокси - они публикуются многими организациями.

Однако ничто не является на 100% уверенным. Вы можете использовать вышеупомянутую тактику, чтобы избежать большинства простых ситуаций, но в конце концов это всего лишь серия пакетов, образующих транзакцию TCP/IP, а протокол TCP/IP не был разработан с сегодняшними идеями по безопасности, аутентификации и т. Д. .

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

-Adam

1

ли немного копать на этом после того, как мой домен был размещается на Google, AppSpot.com с хорошими Жесткое порно объявлений инжектированных в него (спасибо Google).

Принимая лист от этого htaccess idea Я делаю следующее, которое, кажется, работает. Я добавил специальное правило для AppSpot, которое вводит HTTP_X_APPENGINE_COUNTRY ServerVariable.

Dim varys As New List(Of String) 
    varys.Add("VIA") 
    varys.Add("FORWARDED") 
    varys.Add("USERAGENT_VIA") 
    varys.Add("X_FORWARDED_FOR") 
    varys.Add("PROXY_CONNECTION") 
    varys.Add("XPROXY_CONNECTION") 
    varys.Add("HTTP_PC_REMOTE_ADDR") 
    varys.Add("HTTP_CLIENT_IP") 
    varys.Add("HTTP_X_APPENGINE_COUNTRY") 
    For Each vary As String In varys 
     If Not String.IsNullOrEmpty(HttpContext.Current.Request.Headers(vary)) Then HttpContext.Current.Response.Redirect("http://www.your-real-domain.com") 
    Next 

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

  • Нет связанных вопросов^_^