요청이 프록시에서 오는지 여부를 알려주는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/690025

  •  22-08-2019
  •  | 
  •  

문제

프록시 서버를 통해 들어오는 요청이 이루어지고 있는지 감지 할 수 있습니까? 웹 응용 프로그램이 IP 주소를 통해 사용자를 "금지"하는 경우 프록시 서버를 사용하여이를 우회 할 수 있습니다. 이것이 이러한 요청을 차단 해야하는 한 가지 이유 일뿐입니다. 이것이 어떻게 달성 할 수 있습니까?

도움이 되었습니까?

해결책

IMHO이를 달성 할 수있는 100% 신뢰할 수있는 방법은 없지만 다음 헤더의 존재는 요청이 프록시 서버에서 라우팅되었다는 강력한 표시입니다.

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

당신은 또한 찾을 수 있습니다 대리 또는 pxy 클라이언트 도메인 이름에서.

다른 팁

프록시 서버의 감지를 피하기 위해 프록시 서버가 올바르게 설정된 경우 알 수 없습니다.

대부분의 프록시 서버는 다른 사람들이 언급 한 바와 같이 헤더를 공급하지만, 이들은 사용자를 완전히 숨기는 프록시에 존재하지 않습니다.

쿠키, 프록시 헤더 감지 및 IP 휴리스틱과 같은 여러 탐지 방법을 사용하여 이러한 상황을 감지해야합니다. 체크 아웃 http://www.osix.net/modules/article/?id=765 이 상황에 대한 정보는. 또한 프록시 블랙리스트 사용을 고려하십시오. 많은 조직에서 게시합니다.

그러나 100% 확실한 것은 없습니다. 위의 전술을 사용하여 가장 간단한 상황을 피할 수 있지만 하루가 끝나면 TCP/IP 트랜잭션을 형성하는 일련의 패킷 일 뿐이며 TCP/IP 프로토콜은 오늘날의 보안, 인증 등에 대한 아이디어로 개발되지 않았습니다. .

많은 기업들이 여러 가지 이유로 회사의 광범위한 프록시를 배치하며, 단순히 프록시를 일반적인 규칙으로 차단하면 반드시 청중을 제한하며 항상 바람직하지는 않습니다. 그러나 이러한 프록시는 일반적으로 적절한 헤더로 자신을 발표합니다. 자신을 숨기는 사용자보다는 합법적 인 사용자를 차단할 수 있습니다.

-아담

내 도메인이 Google의 AppSpot.com에서 호스팅 된 후 멋진 하드 코어 포르노 광고를 주입 한 후 약간 파고 들었습니다 (Google에게 감사합니다).

이것에서 잎을 가져가 htaccess 아이디어 나는 다음을하고 있습니다. 그것은 작동하는 것 같습니다. http_x_appengine_country servervariable을 주입하는 AppSpot에 대한 특정 규칙을 추가했습니다.

    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

요청 객체에서 이러한 헤더를 찾을 수 있으며 따라서 요청이 프록시/

1) 2) x-forwarded-for

이것은 100% 확실한 샷 트릭이 아니며,이 프록시 서버가 위의 헤더를 추가하도록 선택하는지 여부에 따라 다릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top