PHP は、curl を使用して、ユーザーが新浪微博にログインして Weibo を投稿する方法を模倣し、curl ユーザーがログインします
この記事の例では、PHP が Curl を使用して、Sina Weibo にログインして Weibo を投稿するユーザーを模倣する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
PHP を使用してユーザーのログインを模倣する場合、PHP のcurl関数のみがユーザーと同じように他のWebサイトにアクセスできるため、Sina WeiboへのcurlログインとWeiboの投稿のアプリケーション例を紹介します。
一昨日、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配列です
コードをコピーします コードは次のとおりです:
$password = $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 より前に取得する必要があります。取得しないと問題が発生します。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
phpcurlを介してSina Weiboへのログインをシミュレートする方法
PHP CURL POST のユーザー ログインをシミュレートする具体的なコードと、そのコードについて簡単に説明していただければ幸いです
GET /home/pack/data/content id? =31,2399,13,30&asyn=1&t=0.03439752989200834&_req_seqid=0xa982225f0637c78a HTTP/1.1Accept: */*
Accept-Language: zh-cnReferer: www.baidu.com/
x-re requested -with: XMLHttpRequest
Accept-Encoding: gzip、deflate
User-Agent: Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS123401; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; MS-RTC LM 8)
ホスト: www.baidu.com
接続: キープアライブ
Cookie: XCXXXXX
http://www.bkjia.com/PHPjc/907837.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/907837.html技術記事 PHP は、curl を使用してユーザーが新浪微博にログインして Weibo を投稿する方法を模倣します。この記事のカール ユーザー ログインの例では、PHP がカールを使用してユーザーが新浪微博にログインして Weibo を投稿する方法を模倣する方法について説明します。みんなとシェアしましょう...