Führen Sie eine HTTP-Authentifizierung mit PHP Curl durch

Subodh Poudel 20 Juni 2023
  1. Einführung in php-curl
  2. Installation der Bibliothek php-curl in Ubuntu
  3. Führen Sie die grundlegende HTTP-Authentifizierung über das HTML-Formular durch
  4. Führen Sie die grundlegende HTTP-Authentifizierung mit cURL durch
Führen Sie eine HTTP-Authentifizierung mit PHP Curl durch

Dieses Tutorial zeigt, wie Sie eine HTTP-Authentifizierung mit PHP cURL in Ubuntu durchführen.

Einführung in php-curl

cURL (Client URL) ist ein Befehlszeilenprogramm, das Daten und Dateien sendet oder empfängt. Es verwendet die URL-Syntax und unterstützt Protokolle wie FTP, FTPS, DICT, HTTP, HTTPS usw.

Die cURL-Bibliothek ist in PHP unter dem Namen php-curl verfügbar. Wir können diese Bibliothek verwenden, um mit Servern zu kommunizieren, indem wir HTTP-Anforderungen in PHP senden.

Wir können verschiedene Aufgaben ausführen, wie das Setzen von Cookies, die Verwendung von Proxys, die Weitergabe von Daten über SSL-Verbindungen und sogar die Authentifizierung mit php-curl.

Schauen wir uns die grundlegenden php-curl-Funktionen an.

  1. curl_init() – Initialisiert eine cURL-Sitzung.

  2. curl_close() – Schließt eine cURL-Sitzung.

  3. curl_setopt(handle, option, value) – Legt die Option für die cURL-Sitzung fest. handle ist hier der von curl_init() zurückgegebene Wert.

    Der Parameter option kann einen breiten Wert von Optionen haben. Die Liste der Optionen finden Sie hier.

    Es wird nach Bedarf eingesetzt. Der Parameter value hat den Wert für die Option.

  4. curl_exec() – Führt die vordefinierte cURL-Sitzung aus.

Installation der Bibliothek php-curl in Ubuntu

Vor Durchführung der Authentifizierung müssen wir überprüfen, ob php-curl in unserem System installiert ist. Wir können es mit dem folgenden Befehl tun.

php -m

Der Befehl listet die kompilierten PHP-Module auf. Wenn Sie curl in der Liste finden, bedeutet dies, dass php-curl installiert ist.

Sie können die Installation auch überprüfen, indem Sie die Ausgabe der Funktion phpinfo() überprüfen. Falls installiert, erscheint in der Ausgabe eine Tabelle für curl.

Falls php-curl nicht installiert ist, können Sie es über den folgenden Befehl installieren.

sudo apt-get install php-curl

Öffnen Sie nach der Installation die Datei php.ini und suchen Sie die folgende Zeile.

;extension=curl

Entkommentieren Sie die obige Zeile wie unten.

extension=curl

Der letzte Schritt besteht darin, den Server mit einem dieser Befehle neu zu starten.

sudo systemctl start apache2
sudo /etc/init.d/apache2 start

Führen Sie die grundlegende HTTP-Authentifizierung über das HTML-Formular durch

Zuerst führen wir eine grundlegende Authentifizierung nur mit der HTTP-Methode POST durch. Wir erstellen ein HTML-Anmeldeformular, das Benutzername und Passwort akzeptiert.

Wir überprüfen die Benutzereingabe mit einer Reihe vordefinierter Anmeldedaten. Als nächstes führen wir die HTTP-Authentifizierung mit cURL-Methoden durch.

Erstellen Sie zum Beispiel ein Verzeichnis curl im /var/www/html und erstellen Sie dann eine Datei login.php. Erstellen Sie in der PHP-Datei ein Anmeldeformular mit HTML.

Schreiben Sie die Attribute name als uname und pass für Benutzername und Passwort, wie im Beispiel unten gezeigt.

Codebeispiel:

<form action="login.php" method="post">
  <input type="text" placeholder="Enter Username" name="uname" required><br>
  <input type="password" placeholder="Enter Password" name="pass" required><br>
  <button type="submit" >Login</button>
</form>

Als nächstes öffnen Sie das PHP-Tag und prüfen mit der Funktion isset(), ob Benutzername und Passwort gleich user123 und password123 sind. Verwenden Sie die if-Bedingung, um die Meldung entsprechend anzuzeigen, wie im folgenden Beispiel gezeigt.

if(isset($_POST['uname'])&& isset($_POST['pass']))
   if($_POST['uname']=='user123' && $_POST['pass']=='password123'){
       echo "login successful";
   }
   else{
       echo "login failed";
   }

Öffnen Sie nun die Datei vom Server und füllen Sie die Anmeldeinformationen wie folgt aus.

username=user123
password=password123

Ausgang:

Anmeldeformular - html

Sie können die HTTP-Anforderung auf der Registerkarte Netzwerk der Option Element prüfen überprüfen, wie unten gezeigt.

Element prüfen

Sie können die Authentifizierung testen, indem Sie die falschen Anmeldeinformationen an das Formular übermitteln und die Meldung Anmeldung fehlgeschlagen anzeigen. Die falschen Zugangsdaten sind auch auf der Registerkarte Anfrage zu sehen, wie im Bild oben.

Führen Sie die grundlegende HTTP-Authentifizierung mit cURL durch

Wir können die HTTP-Authentifizierung mit den oben aufgeführten cURL-Methoden durchführen. Zuerst müssen wir eine Nutzlast erstellen, um die HTTP-Anforderung an den Server zu senden.

Erstellen Sie beispielsweise eine Datei post.php im Verzeichnis curl. Erstellen Sie in der PHP-Datei ein Array $data und speichern Sie die korrekten Anmeldeinformationen, wie unten gezeigt.

$data = array(
    "uname" => "user123",
    "pass" => "password123",
    "form" => "submit"
);

Erstellen Sie als nächstes eine Variable ch, um die Sitzung cURL zu speichern. Weisen Sie ch die Funktion curl_init() mit der URL http://localhost/curl/login.php zu.

Verwenden Sie danach die Funktion curl_setopt(), um die verschiedenen Optionen für die cURL-Sitzung festzulegen. Setzen Sie CURLOPT_FOLLOWLOCATION, CURLOPT_POST und CURLOPT_RETURNTRANSFER auf TRUE.

Geben Sie die Payload $data für die Option CURLOPT_POSTFIELDS an. Schreiben Sie für die Option CURLOPT_COOKIEJAR den Cookie-Dateinamen cookie.txt.

Sie müssen eine leere cookie.txt-Datei erstellen, um das Cookie im Projektverzeichnis zu speichern.

  1. http://localhost/curl/login.php ist die Ziel-URL, an die wir die Anfrage mit cURL senden.
  2. Die auf TRUE gesetzte Option CURLOPT_FOLLOWLOCATION folgt jeder Header-Position, die von Location: header() umgeleitet wird.
  3. Die auf TRUE gesetzte Option CURLOPT_POST teilt der Session mit, dass es sich um eine POST-Anfrage an den Server handelt.
  4. Die Option CURLOPT_POSTFIELDS definiert die in der Anfrage gesendete Nutzlast.
  5. Die Option CURLOPT_COOKIEJAR speichert die Cookies nach dem Beenden der cURL-Session in der Datei cookie.txt.
  6. Die auf TRUE gesetzte Option CURLOPT_RETURNTRANSFER gibt die Antwort der curl_exec() statt der direkten Eingabe zurück.

Schreiben Sie abschließend die Funktion curl_exec() mit ch als Parameter, um die cURL-Session auszuführen und schliessen Sie die Session mit curl_close(). Zeigen Sie zuletzt die Ausgabe der Funktion curl_exec() an.

Codebeispiel:

$ch = curl_init('http://localhost/curl/login.php');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($ch);
curl_close($ch);
echo $result;

Führen Sie dann das Skript post.php aus. Die folgende Ausgabe wird empfangen, wenn die Anmeldeinformationen in der Nutzlast korrekt sind.

Anmeldeformular - curl

Die Ausgabe lautet Anmeldung fehlgeschlagen, wenn wir die falschen Anmeldeinformationen verwenden.

Daher hat dieses Tutorial gezeigt, wie man eine grundlegende cURL-Authentifizierung in PHP durchführt.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP Curl