[英]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.