首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 模擬 QQ 登入實作(教學用途,勿用於生產)

     編輯:PHP 綜合知識

⚠️ 重要聲明

本文僅供技術研究與教學參考。模擬登入第三方服務違反多數平台服務條款,且涉及帳號密碼明文傳輸,極不安全。正式專案請務必使用官方提供的 OAuth 2.0 / OpenID Connect 介面(如 QQ 互聯)。

原理說明

透過 cURL 模擬瀏覽器向 QQ 移動版登入頁(pt.3g.qq.com)發送 POST 請求,攜帶帳號密碼與必要表單欄位,獲取 Cookie 以維持登入狀態。

程式碼範例

<?php
$qqno = '你的QQ號碼';
$qqpw = 'QQ密碼';
$cookie = dirname(__FILE__) . '/cookie.txt';

$post = array(
    'login_url' => 'https://pt.3g.qq.com/s?sid=ATAll43N7ZULRQ5V8zdfojol&aid=nLogin',
    'q_from' => '',
    'loginTitle' => 'login',
    'bid' => '0',
    'qq' => $qqno,
    'pwd' => $qqpw,
    'loginType' => '1',
    'loginsubmit' => 'login',
);

$curl = curl_init('https://pt.3g.qq.com/handleLogin?aid=nLoginHandle&sid=ATAll43N7ZULRQ5V8zdfojol');
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); // 儲存 Cookie
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($curl);
curl_close($curl);

// $result 即登入回應內容,可進一步解析判斷是否成功
// 後續請求可使用 CURLOPT_COOKIEFILE 讀取 $cookie 維持會話
?>

關鍵點解析

  • CURLOPT_COOKIEJAR:登入成功後將 Cookie 寫入檔案。
  • http_build_query():正確編碼 POST 欄位,避免特殊字元問題。
  • 目標 URL 參數 sid、aid 可能隨時失效,實際部署需動態獲取。

為何不建議生產使用?

  1. 帳號密碼明文傳輸,若中間人攻擊極度危險。
  2. QQ 登入介面頻繁變動,維護成本極高。
  3. 觸發風控機制導致帳號凍結。
  4. 違反騰訊開發者協議,可能面臨法律風險。

正確做法:QQ 互聯 OAuth 2.0

  1. 註冊開發者帳號,建立應用獲取 App ID / App Key。
  2. 引導用戶至授權頁,獲取 Authorization Code。
  3. 後端以 Code 換取 Access Token / OpenID。
  4. 呼叫 OpenAPI 獲取用戶資料(暱稱、頭像等)。

參考官方文檔:QQ 互聯開發文檔

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved