2013-10-12 1 views
0

IdHTTPProxyServer의 전체 대상 URL을 모두 읽으려면 어떻게해야합니까? 다음 코드는 HTTP URL 만 작동합니다. HTTPS의 경우 전체 URL 대신 Server:443 만 반환합니다. 포트 :IdHTTPProxyServer의 모든 대상 URL을 읽을 수있는 방법

procedure TManager.OnHTTPBeforeCommand(AContext: TIdHTTPProxyServerContext); 
var 
    URL:String; 
begin 
    URL := AContext.Target; 
end; 

답변

1

HTTPS 프록 싱은 URL 만 호스트에 연결하지 않는 HTTP CONNECT 동사를 사용합니다. 웹 클라이언트는 먼저 대상 서버와 연결하여 기본 연결을 설정 한 다음 실제 HTTP 요청을 보내기 전에 해당 서버와의 SSL 세션을 설정합니다. 요청이 암호화 되었기 때문에 TIdHTTPProxyServer은 전체 HTTPS URL을 캡처 할 수 없습니다.

+0

대신 TIdMappedPortTCP + TIdHttp를 사용할 수 있습니까? –

+0

HTTPS URL은 연결이 암호화 될 때까지 전송되지 않는 HTTP 요청 데이터의 일부입니다. 어떤 종류의 프록시를 사용하든 관계없이 유니언하지 않은 데이터를 캡처하는 유일한 방법은 Man-In-The-Middle 공격입니다. –

+0

어떻게 그렇게 할 수 있습니까? TWebbrowser에서 HTTPS 요청을 모니터하려고합니다. 그리고 저는 아직이 문제에 대한 해결책을 찾을 수 없었습니다. –

관련 문제