簡體   English   中英

登錄到 Facebook 使用 PHP cURL

[英]Login To Facebook Using PHP cURL

我正在嘗試使用 cURL 登錄到 Facebook 我從 facebook 表單隱藏輸入中獲取隨機值,以便在 lsd、jazoestm_ts、m_ts 等帖子字段中使用它,登錄過程不工作,我不知道為什么。 我想預覽配置文件以繼續我當前的項目。

這是我的 PHP 代碼:

<?php
include("simple_html_domo.php");

//get page data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mbasic.facebook.com/login");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13');

$data = curl_exec($ch);
$html = new simple_html_dom();
$html->load($data);

//Scraping from Fields
$lsd = $html->find('input[name=lsd]' , 0)->value;
$jazoest = $html->find('input[name=jazoest]' , 0)->value;
$m_ts = $html->find('input[name=m_ts]' , 0)->value;
$li = $html->find('input[name=li]' , 0)->value;
$try_number = $html->find('input[name=try_number]' , 0)->value;
$unrecognized_tries = $html->find('input[name=unrecognized_tries]' , 0)->value;
$bi_xrwh = $html->find('input[name=bi_xrwh]' , 0)->value;
$login = $html->find('input[name=login]' , 0)->value;
$email = "user123456@myemail.com";
$pass = "password123456";


$postFields = array(
    "lsd" => $lsd,
    "jazoest" => $jazoest,
    "m_ts" => $m_ts,
    "li" => $li,
    "try_number" =>$try_number,
    "unrecognized_tries" =>$unrecognized_tries,
    "email" =>$email,
    "pass" =>$pass,
    "login" =>$login,
    "bi_xrwh" => $bi_xrwh
);

//trying to login
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mbasic.facebook.com/login/device-based/regular/login/?refsrc=deprecated&lwv=100");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postFields));
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_exec($ch);

//profile preview
curl_setopt($ch, CURLOPT_URL, "https://mbasic.facebook.com/profile.php");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
$response = curl_exec($ch);
echo $response;

?>

我有辦法使用 PHP Curl 登錄 facebook。但這里的缺點是您不能使用 email、手機號碼和用戶名登錄,而是使用您自己的 facebook ID。 這更像是那些自稱是最專業黑客的人使用 python 和 termux 應用大寫來破解 facebook 帳戶所做的事情:D

<?php
$uid = '100085889112490';
$pass = 'your own password';

function getCookies($data) {
    preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $data, $matches);
    $cookies = array();
    foreach($matches[1] as $item) {
        parse_str($item, $cookie);
        $cookies = array_merge($cookies, $cookie);
    }
    return $cookies;
}

function fbLogin($uid, $pass) {
    // Get jazoest & lsd value
    $ch = curl_init("https://m.facebook.com/login/device-based/password/?uid=".$uid."&flow=login_no_pin&refsrc=deprecated&_rdr");
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $hLogin = array(
        "Host: m.facebook.com",
        "Upgrade-Insecure-Requests: 1",
        "User-Agent:" . $_SERVER['HTTP_USER_AGENT'],
        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "Dnt: 1",
        "X-Requested-With: com.facebook.katana",
        "Sec-Fetch-Site: same-origin",
        "Sec-Fetch-Mode: cors",
        "Sec-Fetch-User: empty",
        "Sec-Fetch-Dest: document",
        "Referer: https://m.facebook.com/",
        "Accept-Language: en-US,en;q=0.9,id-ID;q=0.8,id;q=0.7"
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $hLogin);
    $login = curl_exec($ch);

    // Start Scraping
    include("simple_html_dom.php");
    $html = new simple_html_dom();
    $html->load($login);

    // Scraping from Fields
    $lsd = $html->find('input[name=lsd]' , 0)->value;
    $jazoest = $html->find('input[name=jazoest]' , 0)->value;

    // Get Cookie
    $cookie = "datr=".getCookies($login)['datr'].";fr=".getCookies($login)['fr'].";sb=".getCookies($login)['sb'].";m_pixel_ratio=1.7000000476837158;wd=424x781";

    // Post Fields
    $postFields = array(
        "lsd"       => $lsd,
        "jazoest"   => $jazoest,
        "uid"       => $uid,
        "next"      => "https://https://m.facebook.com/login/save-device/",
        "flow"      => "login_no_pin",
        "pass"      => $pass
    );

    // Trying to login
    curl_setopt($ch, CURLOPT_URL, "https://m.facebook.com/login/device-based/validate-password/?shbl=0");
    $hTrueLogin = array(
        "Host: m.facebook.com",
        "Cache-Control: max-age=0",
        "Upgrade-Insecure-Requests: 1",
        "Origin: https://m.facebook.com",
        "Content-Type: application/x-www-form-urlencoded",
        "User-Agent:" . $_SERVER['HTTP_USER_AGENT'],
        "Accept: */*",
        "X-Requested-With: com.facebook.katana",
        "Sec-Fetch-Site: same-origin",
        "Sec-Fetch-Mode: cors",
        "Sec-Fetch-User: empty",
        "Sec-Fetch-Dest: document",
        "Referer: https://m.facebook.com/login/device-based/password/?uid=".$uid."&flow=login_no_pin&refsrc=deprecated&_rdr",
        "Accept-Language: en-US,en;q=0.9,id-ID;q=0.8,id;q=0.7"
    );
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postFields));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $hTrueLogin);
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    $result = curl_exec($ch);

    if (!empty(getCookies($result)['c_user'])) {
        echo "OK";
    } else {
        echo "FAILED";
    }
}

fbLogin($uid, $pass);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM