Einzelnen Beitrag anzeigen

Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Proxy-Server leitet keine https-Seiten weiter

  Alt 24. Okt 2007, 14:54
Hallo zusammen,

ich möchte mit einem selbstgeschrieben Proxy-Server Internet-Seiten filtern.
Den bisher geschriebenen Code habe ich aus vielen Beiträgen aus der DP zusammen-
gesucht (verwende Delphi7 und Indy9):

Delphi-Quellcode:
procedure TfrmMain.IdhttpserverProxyCommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  Method: TIdHTTPMethod;
  Source, Dest: TStream;
  Url: AnsiString;
begin
  try
    AResponseInfo.ContentText := '';

    if Pos('ups.com', ARequestInfo.Host) = 0 then Exit; //Nur "ups.com"-Seiten zulassen

    try
      while idhttpProxy.Tag = 1 do Application.ProcessMessages;

      idhttpProxy.Tag := 1;

      if ARequestInfo.Command = 'GETthen Method := hmGet
      else if ARequestInfo.Command = 'POSTthen Method := hmPost
      else if ARequestInfo.Command = 'HEADthen Method := hmHead
      else
      begin
        AResponseInfo.ResponseNo := 501;
        Exit;
      end;

      Source := nil;
      Dest := nil;
      if Method <> hmHead then
      begin
        AResponseInfo.ContentStream := TMemoryStream.Create;
        if Method = hmPost then Source := ARequestInfo.PostStream;
        Dest := AResponseInfo.ContentStream;
      end;

      Url := 'http://'+ARequestInfo.Host+ARequestInfo.Document;
      if Length(ARequestInfo.QueryParams) > 0 then Url := Url+'?'+ARequestInfo.QueryParams;

      idhttpProxy.DoRequest(Method, Url, Source, Dest);
    finally
      AResponseInfo.ResponseNo := idhttpProxy.Response.ResponseCode;
      AResponseInfo.ResponseText := idhttpProxy.Response.ResponseText;
      AResponseInfo.RawHeaders.Assign(idhttpProxy.Response.RawHeaders);

      idhttpProxy.Tag := 0;
    end;
  except
  end;
end;
Die Prozedur gestattet nur das Laden von Internet-Seiten von Hosts mit "ups.com".
Das funktioniert soweit ganz gut...nur wenn man sich über eine https-Seite anmelden
muß klappt's nicht mehr...

Ich habe schon den Indy Http-Client und -Server Komponenten einen SSL-IO-Handler hinzugefügt
(habe ich hier irgendwo gelesen) und die SSL-DLLs für Indy besorgt, aber Zugriffe auf
"https://..." werden völlig ignoriert!?!

Hat jemand eine Idee was fehlt?

Habe von einer Indy HTTP-Proxy Komponente gelesen - finde ich aber bei mir nicht...
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat