Android 앱에서 ByetHost의 testcookie-nginx-module이 JSON 응답을 차단하는 문제를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 15:17:30
원래의
986명이 탐색했습니다.

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

JSON 문자열로 HTML 값을 반환하는 ByetHost 서버

문제

JSON 문자열을 Android로 구문 분석하는 동안 HTML 값이 대신 전달됩니다. 이전에는 코드가 잘 작동했지만 PHP 파일을 사용하여 데이터베이스를 가져올 때 갑자기 충돌이 발생하기 시작했습니다.

확인 결과 logcat에서 HTML 값이 관찰되었습니다.

<html><body><h2>Checking your browser..</h2><script...
로그인 후 복사

원인

가장 큰 문제는 ByetHost가 testcookie-nginx-module이라는 간단한 보안 안티 봇 모듈을 구현한다는 것입니다.

해결책

testcookie-nginx-module은 두 단계를 수행합니다. 유효성 검사:

  1. 첫 번째 HTTP 요청에서는 예상되는 JSON 대신 JavaScript를 반환합니다. 이 스크립트는 클라이언트(일반적으로 웹 브라우저)에서 실행되고 AES 키가 포함된 유효성 검사 쿠키를 생성합니다.
  2. 스크립트는 문서에 유효성 검사 쿠키를 추가하고 실제로 액세스하려는 URL로 리디렉션합니다. testcookie-nginx-module은 쿠키 AES 키의 유효성을 검사하고 요청이 JSON 데이터로 응답할 URL에 도달하도록 합니다.

Android 앱용 솔루션

이 유효성 검사를 우회하려면 Android의 경우 다음 단계를 따르세요.

  1. 웹 브라우저에서 쿠키 키 가져오기:

    • Google Chrome 또는 다른 브라우저를 사용하세요.
    • 웹사이트를 방문하여 쿠키를 허용하세요.
    • 브라우저 설정을 열고 "콘텐츠 설정" -> "모든 쿠키 및 사이트 데이터".
    • 웹사이트 이름(예: "byethost")을 검색합니다.
    • __test라는 쿠키를 찾아 콘텐츠, 경로 및 만료 값을 복사합니다.
    • Android 앱에서 쿠키를 설정합니다.

      • HTTP 요청을 수행하는 코드에서, 다음 헤더를 추가하세요:

        <code class="java">httpPost.addHeader("Cookie", "__test=<content-of-your-cookie>; expires=<expires>; path=<path>");</code>
        로그인 후 복사
    • 위 내용은 Android 앱에서 ByetHost의 testcookie-nginx-module이 JSON 응답을 차단하는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿