Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   HTTPS GET Abfrage - Basics (https://www.delphipraxis.net/205487-https-get-abfrage-basics.html)

Int3g3r 15. Sep 2020 16:57

HTTPS GET Abfrage - Basics
 
Guten Tag,

Ich versuche gerade eine kleine VCL-Applikation zu erstellen bei der ich einen Download automatisieren kann.
Seite: https://www.curseforge.com/minecraft/mc-mods/jei/files

Also bezüglich HTTPS kenne ich mich nicht aus.:oops:
Ich weis dass die Daten verschlüsselt übertragen werden. Dahinter meist SSL steckt und dazu Zertifikate notwendig sind.
Dies ist meine erste Applikation bei der ich eine Webseite verarbeiten möchte. Bitte ein wenig Nachsicht :wink:

Ich möchte den Inhalt der oberen Seite in meiner Applikation verarbeiten können.


Somit habe ich mir gedacht einen Indy HTTP-Client zu verwenden.
Da diese Seite aber das HTTPS Protokoll verwendet musste ich noch den TIdSSLIOHandlerSocketOpenSSL verwenden.
Per GET versuche ich nun die Seite Abzufragen.

Nun erhalte ich beim Abfragen aber folgende Rückmeldung:
Zitat:

HTTP/1.1 403 Forbidden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  get_url: string;
begin
  get_url := 'https://www.curseforge.com/minecraft/mc-mods/optiforge/files';
  memo1.Lines.Add(IdHTTP1.Get(get_url));
end;
1. Was bedeutet diese Meldung?
- Ist das HTTP/1.1 Protokoll veraltet, muss ich ein anderes Protokoll verwenden ?
- Ist es nicht möglich diese Seite einfach so Abzufragen / verboten ?

2. Wie muss ich bei der Abfrage vorgehen damit ich eine HTTPS-Seite in meiner Applikation verarbeiten kann ?

3. Gerade die Zertifikate geben mir Kopfzerbrechen. Muss ich solche erstellen und bei meiner Applikation verwenden ?
Wenn ja wie ? Bzw. ab wann werden Zertifikate benötigt ?
Diese Seite ist "öffentlich" jeder der ein Browser hat kann diese Seite betrachten.
Warum werden bereits solche sachen verschlüsselt, wird dadurch nicht alles unnötig kompliziert ?

Gruss Int3g3r

TurboMagic 15. Sep 2020 17:57

AW: HTTPS GET Abfrage - Basics
 
HTTP Status Code mit 4xx sind Fehlercodes. Du darfst die Datei wohl nicht ohne weiteres da runterladen.

Statt Indy gibt's in neueren Delphis auch NetHttp und um Zertifikate brauchst du dich in deiner Situation nicht kümmern.

Gausi 15. Sep 2020 19:28

AW: HTTPS GET Abfrage - Basics
 
Bei den neueren Delphi-Versionen sind eigene HTTP-Komponenten dabei, z.B. TNetHTTPClient. Die machen in der Regel weniger Probleme. Damit bekomme ich keinen Fehler zurück - allerdings auch nicht den Code, den ich dann im Browser sehe. Stattdessen irgendwas mit Captcha-Abfrage und "Please complete the security check to access www.curseforge.com".

Scheint wirklich so, als hätte die Seite es nicht so gerne, wenn man die Files von dort automatisch abgreift. :wink:

Zitat:

Zitat von Int3g3r (Beitrag 1473633)
Warum werden bereits solche sachen verschlüsselt, wird dadurch nicht alles unnötig kompliziert ?

Diese Transportverschlüsselung stellt sicher, dass kein Dritter die Daten auf dem Weg manipuliert. Z.B. könnte dir ein Angreifer statt dem erwarteten Download eine malware.exe zukommen lassen. Ebenso könnten Daten, die du in Formularen eingibst (z.B. Login-Daten), von Dritten abgefangen (und manipuliert) werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz