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

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

Patricia Arquette
發布: 2024-11-03 15:17:30
原創
1030 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板