PHP は、curl を使用して、ユーザーが新浪微博にログインし、Weibo_PHP チュートリアルを投稿する方法を模倣します。

WBOY
リリース: 2016-07-13 10:14:49
オリジナル
1118 人が閲覧しました

PHPはcurlを使用して、ユーザーが新浪微博にログインし、Weiboに投稿する方法を模倣します

さて、PHPを使用してユーザーのログインを模倣するとき、私たちは皆、PHPのcurl関数を使用します。これは、PHPのcurl関数だけがユーザーなど他の人のWebサイトにアクセスできるためです。では、curlを使って新浪微博にログインし、微博を投稿する応用例を紹介します。

一昨日、Weibo へのログインをシミュレートしてから Weibo に投稿する必要があるというリクエストを受けました。これまでに、Alibaba、WeChat、その他の社内システムへのシミュレート ログインを何度も実行しましたが、これまでにログインできなくなったことはありません。同じことですが、Sina のログインプロセスを分析したときにプレッシャーを感じました
sha1(sha1(sha1(pwd)).once.servertime) に遭遇したときは、間違いなく使用できませんでした。主に暗号化アルゴリズムを理解することが困難でした。そのため、パスワードはおろか、パスワードも理解できませんでした。その後、インターネットでさまざまなコードを 1 時間検索しましたが、何も得られませんでした。
Weibo アカウントとパスワードを使用して Sina メールボックスまたは他の Sina 製品にログインできますか? 確かに、私の Weibo アカウントはすべての Sina 製品に直接ログインできます。 . これが役に立つことを証明しますか?

実際、大企業がプロジェクトに投資するテクノロジーはプロジェクトの収益性と見通しに大きく関係しますが、Weibo は必ずしもそうとは限りません。その場所を見つけたら、パスワードは暗号化されていないと言うのは簡単ではないでしょうか。 (追記: 私はネットワーク セキュリティのほうに興味があります。この方法はハッカー向けのサイド ノートと呼ばれています。補足すると、ハッカーが Web サイトを攻撃するとき、Web サイトのセキュリティは非常に優れており、既知の脆弱性はなく、サイズが大きいため、ハッカーはこの Web サイトのサーバーの下にある他の Web サイトを探し、この Web サイトを使用してホースをマウントし、権限を昇格させることができます。ターゲットの Web サイトは同じサーバー上にあると考えられ、侵害されることになります。目的は、どの方法を使用しても、ターゲットのステーションを取得することです。何かエッチな考えはありますか?)

https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543 単純なパケット キャプチャでは、パスワードが暗号化されていないことがわかります。ログインをシミュレートできませんか。えっ、実はここで喜ぶのはちょっと早いんです
まず Sina にログインすると、コードは数分で準備できます。返されるのはjson配列です

コードは次のとおりです:
$パスワード = $p;
$username =base64_encode($u);
$loginUrl = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543';
$loginData['entry'] = 'sso';
$loginData['ゲートウェイ'] = '1';
$loginData['from'] = 'null';
$loginData['savestate'] = '30';
$loginData['useticket'] = '0';
$loginData['pagerefer'] = '';
$loginData['vsnf'] = '1';
$loginData['su'] = Base64_encode($u);
$loginData['サービス'] = 'sso';
$loginData['sp'] = $パスワード;
$loginData['sr'] = '1920*1080';
$loginData['エンコーディング'] = 'UTF-8';
$loginData['cdult'] = '3';
$loginData['ドメイン'] = 'sina.com.cn';
$loginData['prelt'] = '0';
$loginData['returntype'] = 'TEXT';
//var_dump($loginData);終了;
$login = json_decode(loginPost($loginUrl,$loginData),true);
var_dump($login);終了;関数loginPost($url,$data){
グローバル $cookie_file ;
// $cookie_file をエコー ;終了;
$tmp = '';
if(is_array($data)){
foreach($data as $key =>$value){
$tmp .= $key."=".$value."&";
}
$post = トリム($tmp,"&");
}その他{
$post = $data;
}
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
$return =curl_exec($ch);
$info =curl_getinfo($ch);
curl_close($ch);
$return;
を返す }

返されるのは配列に変換できるjsonデータです


コードは次のとおりです:

配列(サイズ=4) 'retcode' => 文字列 '0' (長さ=1)
'uid' => 文字列 '1920109964' (長さ=10)
'nick' => 文字列 'Bi おじいちゃんの物語' (長さ=18)
'crossDomainUrlList' =>
配列(サイズ=2)
0 = & gt; 文字列 'https://passport.weibo.com/wbsso/login?ticket=st-mtkymdewotk2NA%3D%3D%3D-140328192-AB37DC18BFCD90AEFAC611 5149d & SSOSAVESTATE = 1434764192 '(長さ = 140)
1 => 文字列 'https://crosdom.weicaifu.com/sso/crosdom?action=login&savestate=1434764192' (長さ=74)


この時点ではログインに成功したことになりますが、実際にはWeiboホームページのアドレスはweibo,comではなく、http://weibo.com/bipeng0405/home?wvr=5となっています。このアドレスはとても簡単です。weibo を直接取得するだけです。 com にアクセスすると、自動的にリダイレクトされます。リダイレクトされたアドレスを記録するだけです

コードは次のとおりです:
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,"http://weibo.com"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); $return =curl_exec($ch);
$info =curl_getinfo($ch);
curl_close($ch);


このとき、Weibo のホームページにジャンプしない場合があります。ログイン時に接続アドレスが 2 つあることがわかります。そのうちの 1 つは次のアドレスです。 weibo ドメインだと思います。 Cookie が設定されているので、まず取得しましょう。


コードは次のとおりです:

get($login['crossDomainUrlList'][0]);

このコードは weibo.com より前に取得する必要があります。取得しないと問題が発生します。


http://www.bkjia.com/PHPjc/907711.html

www.bkjia.com

http://www.bkjia.com/PHPjc/907711.html技術記事 PHP は、curl を使用して、Sina Weibo へのユーザー ログインを模倣し、Weibo を投稿します。今度は、PHP を使用してユーザー ログインを模倣します。これは、同じユーザー ライクを実現できる唯一の方法であるためです。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート