Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann das testcookie-nginx-module von ByetHost behoben werden, das JSON-Antworten in Android-Apps blockiert?

Wie kann das testcookie-nginx-module von ByetHost behoben werden, das JSON-Antworten in Android-Apps blockiert?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 15:17:30950Durchsuche

How to Fix ByetHost's testcookie-nginx-module Blocking JSON Responses in Android Apps?

ByetHost-Server gibt HTML-Werte mit JSON-String zurück

Problem

Beim Versuch, JSON-String an Android zu analysieren, werden stattdessen HTML-Werte übergeben. Zuvor funktionierte der Code gut, stürzte jedoch plötzlich ab, wenn eine Datenbank mit Hilfe von PHP-Dateien abgerufen wurde.

Bei der Überprüfung wurden HTML-Werte im Logcat beobachtet:

<html><body><h2>Checking your browser..</h2><script...

Ursache

Das Hauptproblem besteht darin, dass ByetHost ein einfaches Sicherheits-Anti-Bots-Modul namens testcookie-nginx-module implementiert.

Lösung

Das testcookie-nginx-module führt einen zweistufigen Schritt aus Validierung:

  1. Bei der ersten HTTP-Anfrage wird ein JavaScript anstelle des erwarteten JSON zurückgegeben. Dieses Skript wird auf dem Client (normalerweise einem Webbrowser) ausgeführt und generiert ein Validierungscookie mit einem AES-Schlüssel.
  2. Das Skript fügt das Validierungscookie zum Dokument hinzu und leitet es an die URL weiter, auf die wir tatsächlich zugreifen möchten. Das testcookie-nginx-Modul validiert den Cookie-AES-Schlüssel und lässt die Anfrage die URL erreichen, die mit den JSON-Daten antwortet.

Lösung für Android-App

Um diese Validierung zu umgehen Android, folgen Sie diesen Schritten:

  1. Holen Sie sich den Cookie-Schlüssel von einem Webbrowser:

    • Verwenden Sie Google Chrome oder einen anderen Browser.
    • Besuchen Sie die Website und erlauben Sie Cookies.
    • Öffnen Sie die Browsereinstellungen und navigieren Sie zu „Inhaltseinstellungen“ -> „Alle Cookies und Websitedaten“.
    • Suchen Sie nach dem Namen Ihrer Website (z. B. „byethost“).
    • Suchen Sie das Cookie mit dem Namen __test und kopieren Sie die Werte für Inhalt, Pfad und Ablaufdatum.
    • Setzen Sie das Cookie in Ihrer Android-App:

      • In Ihrem Code, der die HTTP-Anfrage stellt, Fügen Sie die folgende Überschrift hinzu:

        <code class="java">httpPost.addHeader("Cookie", "__test=<content-of-your-cookie>; expires=<expires>; path=<path>");</code>
    • Das obige ist der detaillierte Inhalt vonWie kann das testcookie-nginx-module von ByetHost behoben werden, das JSON-Antworten in Android-Apps blockiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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