PVP.NET/leagueoflegends.com Login WebRequest

02/18/2014 22:40 Xyooz#1
Hey,
bei der Entwicklung eines kleinen Projektes bin ich beim Login auf der LeagueOfLegends Website auf ein kleines Problem gestoßen.

Die Request + Header funktionieren bis auf einen kleinen Teil eigentlich einwandfrei. Das Problem liegt im Referer im Header, denn das Loginsystem funktioniert mit [Only registered and activated users can see links. Click Here To Register...].

Bisheriger Code, Ausschnitt (Sensible Daten in allen Code-Auschnitten/Header durch Capslock-Pseudonyme/* oder "censored" ersetzt)
PHP Code:
$post_str "username=USERNAME&password=PASSWORD&recaptcha_challenge_field=GOOGLERECAPTCHACODE&recaptcha_response_field=RECAPTCHAANSWER";
$socket fsockopen("ssl://account.leagueoflegends.com"443$errno$errstr10);
$http "POST /auth HTTP/1.1\r\n";
$http .= "Host: account.leagueoflegends.com\r\n";
$http .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0\r\n";
$http .= "Accept: application/json, text/javascript, */*; q=0.01";
$http .= "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3";
$http .= "Accept-Encoding: gzip, deflate";
$http .= "DNT: 1";
$http .= "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n";
$http .= "X-Requested-With: XMLHttpRequest";
$http .= "Referer: https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1";
$http .= "Content-length: ".strlen($post_str)."\r\n";
$http .= "Connection: keep-alive\r\n\r\n";
$http .= "Pragma: no-cache";
$http .= "Cache-Control: no-cache";
$http .= $post_str "\r\n\r\n";

(
anmerkungbei der Requests wird der PVPNET_REGION euw Cookie noch nicht mitgesendet weswegen diese Anfrage sowieso nicht funktioniert
Das Problem liegt (meines Wissens nach) in der Zeile:
PHP Code:
$http .= "Referer: https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1"
denn das der Wert bei xdm_c wird jedes mal verändert. Jedoch ist es mir nicht möglich diesen Wert irgendwo zu erhalten.

Zusätzliche Informationen:
Wenn man sich normal einloggt (zb. mit Firefox), so wird zuerst noch eine andere GET-Request gesendet:

Weitere Requests, welche in Zusammenhang mit dem Referer stehen:

Meine Frage ist nun, wie löse ich das Problem (wie erhalte ich den korrekten Wert für xdm_c) und/oder liegt mein Problem ganz woanders ?
(Die gleiche Request liegt auch nochmal als C# src vor, falls es in der php Version noch weitere Probleme gibt)
02/19/2014 12:41 Synatex#2
Und wie sehen die anderen Werte aus die übergeben werden? Du postest uns hier Requests die du abgeschickt hast, noch wissen wir ob der Wert (eventuell?) in Cookies steht, wie andere von dir angesprochene Werte von dir aussehen. Und du kannst sie von "nirgendwo" herbekommen kann ja auch nicht sein - mal in nem Response geschaut ob der Wert darin vorkommt? Sonst muss der ja entweder lokal gespeichert oder komplett irrelevant bzw. statisch sein.