Felix Riesterer: Daten von einer Passwort-geschützten Seite herunterladen

Beitrag lesen

Lieber Steffen,

Es wird dann nur noch das Passwort abgefragt. Wenn ich ein Passwort eingebe, dann werden mir die CSV-Dateien angezeigt, die ich markieren und über einen Download-Button herunterladen kann.

ist das Eingeben des Passworts von einer weiteren Aktion begleitet? Also das Betätigen eines Buttons oder dergleichen? Wird durch diese Aktion ein HTTP-Request ausgelöst? Mit welcher Methode (GET|POST)?

requesttoken: eine ziemliche lange Zeichenkette (ca. 90 zeichen)
sharingToken: die ID, die hinter dem /s/ steht
password: das eingegebene Passwort im Klartext

Sind das POST-Daten?

Man kann einen Login-Vorgang via PHP nachbilden. Ob man allerdings erreicht, was man will, ist fraglich, weil es an einigen Faktoren scheitern kann. Prinzipiell ist zu prüfen, ob

  • das Login-Formular für den jeweiligen Request spezielle Tokens bereit stellt, um XSS-Attacken zu blockieren. Diese müssen von Deinem PHP-Script beachtet und bei weiteren Requests wieder mitgeliefert werden.
  • Cookie-Daten für ein Session-Management zum Einsatz kommen. Auch diese müssen behandelt werden, wie ein Browser das auch tut.

Ohne die Parameter hinter der index.php wird zu index.php/login geleitet. Hier kann ich sogar per GET-Parameter den Benutzernamen vorgeben und möglicherweise vielleicht sogar das Passwort (index.php/login?user=ABC&password=test), aber ich kenne tatsächlich meinen Benutzernamen nur in der kodierten Form.

Login per GET? Allen Ernstes? Das klingt reichlich schrottig. Die Übertragung des Passwortes (und im Idealfall auch des Benutzernames) will man nicht in der URL sehen können. Das steht ja dann im Klartext in den Log-Dateien!

Kann ein automatischer Download hier überhaupt (wenn auch mit Aufwand) funktionieren?

Wenn es Dir gelingt, das HTML-Dokument nach dem Login per PHP abzugreifen und zu analysieren, um dann den CSV-Download zu simulieren, ja.

Ist hier cUrl ein aussichtsreicher Ansatz?

Also cURL ist nur ein Werkzeug. Es kann HTTP-Requests durchführen. Dein PHP-Script wird sich dieses Werkzeugs sicherlich bedienen wollen, damit Du via PHP die Login-Seite laden kannst, um den Login korrekt durchführen zu können, und auch um die Seite nach dem Login herunterzuladen, damit Du die CSV-Links findest. Auch die Downloads der CSV-Dateien kannst Du mit cURL umsetzen.

Liebe Grüße

Felix Riesterer