GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Guzzle &Sucuri:Behebung von 403-Anfragefehlern

Wenn Sie den GuzzleHTTP-Client verwenden und die Domain, mit der Sie interagieren, Sucuri verwendet, finden Sie möglicherweise einige unerwartete Ergebnisse. Im Allgemeinen treten die Probleme in Form von 4XX- oder 5XX-Fehlerantwortcodes auf. Seltsamerweise tritt das Problem auf, wenn die URL im Browser (oder Curl) normal funktioniert, aber mit Guzzle einen unerklärlichen 403 anzeigt. Ein Teil Ihrer Laufleistung kann je nach Securi-Einstellungen und -Konfiguration der Domain variieren, aber dieser Tipp bringt Sie normalerweise auf den richtigen Weg!

Behebung von 403-Fehlern bei der Verwendung von Guzzle mit Sucuri

Wenn Sie ein Problem mit dem ‘GET‘-ing einer Seite mit Guzzle haben, aber die URL in einem Browser normal funktioniert, probieren Sie es aus. Wenn Sie Ihren Guzzle-Client so konfigurieren, dass er bestimmte Header verwendet, kann dies Securi helfen, Ihre Anfrage zu akzeptieren. In diesen Fällen liegt das Problem nicht wirklich bei Securi, Ihrem Code oder Server – das Problem ist vielmehr, dass Ihre Anfrage in ihrem System ein falsches positives Ergebnis auslöst. Indem Sie diese Header setzen, können Sie Securi signalisieren, dass Ihre Anfrage nicht böswillig ist.

Probieren Sie die folgende Guzzle-Client-Konfiguration aus:

$guzzle = new Client([
  'headers' => [
    'User-Agent' => 'Name of your tool/v1.0',
    'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding' => 'gzip, deflate, br',
  ],
]);

Was bieten diese Optionen?

Die hier verwendeten Guzzle-Optionen sind einfach die Header Möglichkeit. Diese Option verwendet ein Array, um die HTTP-Header festzulegen, die Sie mit den Anfragen verwenden möchten. Die Option ist sehr einfach zu verwenden, Sie setzen einfach den Header-Schlüssel auf den Schlüssel und den Header-Wert auf den Wert! Hier verwenden wir die folgenden Header:

  • User-Agent:Dieser Header ist eine Zeichenfolge, die die Eigenschaften der Software beschreibt, die die Anfrage stellt. Es hilft Netzwerkpartnern, Anwendungstyp, Betriebssystem, Softwareanbieter und Versionen zu identifizieren. Der Schlüssel hier ist, nur eine festzulegen, die das von Ihnen verwendete und erstellte Tool beschreibt! (Also aktualisiere „Name deines Werkzeugs“ entsprechend.)
  • Akzeptieren: Dieser Header definiert die unterschiedlichen Dokumenttypen und Untertypen, die von der anfordernden Software akzeptiert werden. In diesem Fall verwenden wir denselben Wert, den ein moderner Browser verwenden könnte. Sie können fortfahren und diese unverändert verwenden!
  • Accept-Encoding:Dieser Header gibt an, welche Inhaltscodierung für die zu verwendende Antwort akzeptabel ist. Im Allgemeinen wird es verwendet, um den Komprimierungsalgorithmus zu definieren, den der Client verstehen kann. In unserem Fall verwenden wir Gzip, deflate (zlib) und br(Brotli).

Mit diesen 3 gesetzten Überschriften kann das in Securi ausgelöste False-Positive jetzt behoben werden! Sie können Ihr Tool ohne weitere Kopfschmerzen weiter bauen/verwenden. Und das Beste ist, dass Sie bei Securi nichts anpassen müssen, um das Problem zu beheben.

Wenn Sie wirklich wissen, was Sie mit HTTP-Headern machen, können Sie wahrscheinlich sogar die Accept-Werte so verfeinern, dass sie nur Doctypes enthalten, mit denen Sie umgehen möchten.

Was ist GuzzleHTTP?

Guzzle ist ein PHP-basierter HTTP-Client, der verwendet wird, um Webanfragen in PHP zu vereinfachen. In der Vergangenheit haben wir die Verwendung von Composer behandelt und sogar Guzzle als eines der Beispiele verwendet. Der GuzzleHttp-Client ist ein äußerst benutzerfreundlicher Wrapper für die PHP-Curl-Funktionen, die die native HTTP-Client-Funktionalität bereitstellen. Stellen Sie sich Guzzle genauso vor wie die Verwendung von Curl oder einem Webbrowser – Sie geben ihm eine URL und es erhält die Ressourcen, die die URL bereitstellt. Es ist jedoch viel näher an Curl, da es in ähnlicher Weise eine Rendering-Engine eines Browsers fehlt.


Linux
  1. Cutegram – Ein inoffizieller Telegramm-Desktop-Client

  2. PHP-Fehler

  3. Verwenden Sie picocom - Anfrage senden

  4. Manuelle HTTP(S)-Anfrage

  5. Kann Linux Speicher bereinigen?

So stellen Sie eine POST-Anfrage mit cURL

So installieren Sie den Nextcloud-Desktop-Client unter Linux

ADSL-Client

Gibt es einen OneDrive-Client für Linux?

10 Linux-Mail-Clients + 7 Terminal-Mail-Clients [&Installieren]

Fehlerbehebung:Serververbindungsfehler