首頁 >後端開發 >php教程 >如何修復 ByetHost\ 的 testcookie-nginx-module 阻止 Android 應用程式中的 JSON 回應?

如何修復 ByetHost\ 的 testcookie-nginx-module 阻止 Android 應用程式中的 JSON 回應?

Patricia Arquette
Patricia Arquette原創
2024-11-03 15:17:30992瀏覽

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

ByetHost 伺服器回傳帶有JSON 字串的HTML 值

問題

嘗試將JSON 字串解析到Android 時,而是傳遞HTML值。之前程式碼運作良好,但在使用 PHP 檔案獲取資料庫時突然崩潰。

經過檢查,在logcat 中觀察到HTML 值:

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

原因

主要問題是ByetHost 實作了一個簡單的安全反機器人模組,名為testcookie -nginx-module。

解決方案

testcookie-nginx-module 執行兩步驟驗證:

  1. 在第一個 HTTP 請求中,它會傳回 JavaScript 而不是預期的 JSON。該腳本在用戶端(通常是網頁瀏覽器)上執行,並產生包含 AES 金鑰的驗證 cookie。
  2. 該腳本將驗證 cookie 新增至文件中,並將其重新導向至我們實際想要存取的 URL。 testcookie-nginx-module 驗證 cookie AES 金鑰,並讓請求到達將回應 JSON 資料的 URL。

Android 應用程式的解決方案

繞過此驗證Android,請按照以下步驟操作:

  1. 從網路瀏覽器取得cookie 金鑰:

    • 使用Google Chrome 或其他瀏覽器。
    • 造訪網站並允許 cookie。
    • 開啟瀏覽器設定並導航至「內容設定」-> 「所有 cookie 和網站資料」。
    • 搜尋您的網站名稱(例如「byethost」)。
    • 找到名為 __test 的 cookie 並複製內容、路徑和過期時間的值。
  2. 在您的Android 應用程式上設定cookie:

    • 在發出HTTP 請求的程式碼中發出HTTP 請求的程式碼中,加入以下標頭:

      <code class="java">httpPost.addHeader("Cookie", "__test=<content-of-your-cookie>; expires=<expires>; path=<path>");

      以上是如何修復 ByetHost\ 的 testcookie-nginx-module 阻止 Android 應用程式中的 JSON 回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn