Fiddler で次の Post リクエストを取得しました。広告を作成したくないため、URL のみをマスクしました
POST http://xyz.com/dialogs/track HTTP/1.1
Host: www.xyz.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: de
Accept-Encoding: gzip, deflate
DNT: 1
Content-Type: application/json; charset=utf-8
X-CSRFToken: uuihXszJrkrXwnCkLKKDNQ8BrPRDqXvU
X-Requested-With: XMLHttpRequest
Referer: http://www.xyz.com/referer/
Content-Length: 2
Cookie: csrftoken=uuihXszJrkrXwnCkLKKDNQ8BrPRDqXvU
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
{}
このリクエストを Curl で「偽造」するには、チュートリアル (リンクが役立つでしょう) が必要です。Google でいくつかのものを見つけましたが、何も機能せず、エラーが発生します。
-編集-
$headers = array(
'POST http://www.example.com/dialogs/track HTTP/1.1',
'Host: www.example.com',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0',
'Accept: application/json, text/javascript, */*; q=0.01',
'Accept-Language: de',
'Accept-Encoding: gzip, deflate',
'DNT: 1',
'Content-Type: application/json; charset=utf-8',
'X-CSRFToken: uuihXszJrkrXwnCkLKKDNQ8BrPRDqXvU',
'X-Requested-With: XMLHttpRequest',
'Referer: http://www.example.com',
'Content-Length: 2',
'Cookie: __cfduid=d0db16cb5c4c58db770a1374f09a61d7d1375100590810; csrftoken=uuihXszJrkrXwnCkLKKDNQ8BrPRDqXvU; __utma=1.2111538523.1375265099.1375427020.1375431064.5; __utmz=1.1375348556.2.2.utmcsr=example.de|utmccn=(referral)|utmcmd=referral|utmcct=/game/index.php; __gads=ID=88f0a0a8b0698e1e:T=1375265099:S=ALNI_MYX8OxkwPxXQd7VY4qDImLK7fq_yQ; __utmb=1.4.9.1375431089319; __utmc=1',
'Connection: keep-alive',
'Pragma: no-cache',
'Cache-Control: no-cache',
'',
'{}'
);
//set POST variables
$url = 'http://www.example.com/dialogs/track';
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
//execute post
$result = curl_exec($ch);
//close connection
if (curl_error($ch)) {
print "Error: " . curl_error($ch);
}
else
{
var_dump($data);
curl_close($ch);
}
エラーメッセージ
エラー: 受信エラー: ピアによって接続がリセットされました
-編集2-
少し遊んだところ、接続が機能するようになりましたが、CSRF トークンが正しく送信されていないようで、エラーが表示されます!
禁じられた (403)
CSRF 検証に失敗しました。リクエストは中止されました。
それらは解決策ですか?