Heim > Backend-Entwicklung > PHP-Tutorial > Wie melde ich mich mit Curl bei Websites mit SSL und Cookies an?

Wie melde ich mich mit Curl bei Websites mit SSL und Cookies an?

Patricia Arquette
Freigeben: 2024-11-10 01:46:03
Original
386 Leute haben es durchsucht

How to Log In to Websites with SSL and Cookies Using Curl?

So melden Sie sich mit Curl über SSL und Cookies an

Problem:

Anmelden Eine Website, die Curl verwendet, insbesondere barnesandnoble.com, ist nicht erfolgreich. Die Seite wird ohne Fehler zurückgegeben, das E-Mail-Feld wird jedoch mit der ursprünglich eingegebenen E-Mail-Adresse gefüllt. Das Ändern der Anmelde-URL zu einer Nicht-HTTPS-Website (z. B. eBay) ermöglicht eine erfolgreiche Anmeldung.

Ursache:

Mögliche Ursachen sind:

  • Unterschiede im Umgang mit Cookies und _state zwischen ASP/ASPX-Websites und dem von Curl verwendeten Ansatz
  • Fehlende URL-codierte URL-Parameter für E-Mail und Passwort im Post-String
  • Falsche Behandlung des „x „Wert in der Anmelde-URL

Lösung:

Der folgende Code behebt diese Probleme und demonstriert eine erfolgreiche Anmeldung mit Curl, SSL und Cookies:

</p>
<p>//...<br>// Vorherige Curl-Optionen wurden der Kürze halber weggelassen<br>//...</p>
<p>// Formularfelder abrufen<br>$fields = getFormFields($content);</p>
<p>// E-Mail und Passwort festlegen<br>$fields['emailAddress'] = $EMAIL;<br>$fields['acctPassword'] = $PASSWORD; </p>
<p>// X-Wert abrufen<br>if (preg_match('/op.asp?x=(d )/i', $content, $match)) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$x = $match[1];
Nach dem Login kopieren

}

// Anmelde-URL mit x-Wert festlegen
$LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x=$x";

// POST-Felder festlegen
$POSTFIELDS = http_build_query($fields);

// URL in Anmelde-URL ändern
curl_setopt($ch, CURLOPT_URL, $LOGINURL);

// Beitragsoptionen festlegen
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);

// Anmeldung durchführen
$result = curl_exec( $ch);

print $result;

//...

Erklärung:

  • getFormFields(): Extrahiert versteckte Eingaben aus dem Anmeldeformular.
  • E-Mail und Passwort festlegen: Legt die entsprechenden E-Mail- und Passwortwerte fest.
  • X-Wert abrufen: Ruft den „x“-Wert von der Anmelde-URL zur Verwendung in der richtigen Anmelde-URL ab.
  • Anmelde-URL mit x-Wert festlegen: Konstruiert die Korrigieren Sie die Anmelde-URL mithilfe des erhaltenen „x“-Werts.
  • POST-Felder festlegen: Konvertiert die Formularfelder in eine Abfragezeichenfolge für POST.
  • URL ändern in Anmelde-URL und Beitragsoptionen festlegen: Konfiguriert das Curl-Handle für die Anmeldeanforderung.
  • Anmeldung durchführen: Führt die Anmeldeanforderung aus.

Durch Implementierung Durch diese Änderungen kann sich Curl trotz der Verwendung von HTTPS und den möglichen Unterschieden in der Cookie-Verarbeitung erfolgreich anmelden.

Das obige ist der detaillierte Inhalt vonWie melde ich mich mit Curl bei Websites mit SSL und Cookies an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage