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

.
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, $errstr, 10);
$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";
(anmerkung: bei 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:
Code:
https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1#http://euw.leagueoflegends.com/
GET /pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1 HTTP/1.1
Host: account.leagueoflegends.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://euw.leagueoflegends.com/
Cookie: __cfduid=*; s_nr=*-Repeat; rp2=*-Repeat; s_vi=[*]*|*-*[*]; s_fid=*-*; riot_region=euw; fbm_*=base_domain=.leagueoflegends.com; PVPNET_REGION=euw; PVPNET_LANG=en_GB; PVPNET_ID_EUW=*; s_cc=*; s_ppv=*
Connection: keep-alive
HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Sun, 16 Feb 2014 23:37:05 GMT
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
X-Powered-By: PHP/5.4.10
CF-RAY: fde104d71960725-AMS
X-Firefox-Spdy: 3.1
Weitere Requests, welche in Zusammenhang mit dem Referer stehen:
Code:
https://account.leagueoflegends.com/js/compiled/riot-core.js
GET /js/compiled/riot-core.js HTTP/1.1
Host: account.leagueoflegends.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: */*
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1
Cookie: __cfduid=*; s_nr=*-Repeat; rp2=*-Repeat; s_vi=[*]*|*-*[*]; s_fid=*-*; riot_region=euw; fbm_*=base_domain=.leagueoflegends.com; PVPNET_REGION=euw; PVPNET_LANG=en_GB; PVPNET_ID_EUW=*; s_cc=*; s_ppv=*
Connection: keep-alive
HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Sun, 16 Feb 2014 23:37:05 GMT
Content-Type: application/x-javascript
Last-Modified: Wed, 12 Feb 2014 18:42:53 GMT
CF-Cache-Status: HIT
Expires: Mon, 17 Feb 2014 03:37:05 GMT
Cache-Control: public, max-age=14400
CF-RAY: fde105261a30725-AMS
X-Firefox-Spdy: 3.1
Code:
https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js
GET /ajax/libs/jquery/1.6.4/jquery.min.js HTTP/1.1
Host: ajax.googleapis.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: */*
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1
Connection: keep-alive
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Age: 371501
Alternate-Protocol: 443:quic
Cache-Control: public, max-age=31536000
Content-Encoding: gzip
Content-Length: 32103
Content-Type: text/javascript; charset=UTF-8
Date: Wed, 12 Feb 2014 16:25:24 GMT
Expires: Thu, 12 Feb 2015 16:25:24 GMT
Last-Modified: Mon, 02 Apr 2012 18:24:28 GMT
Server: sffe
Timing-Allow-Origin: *
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Firefox-Spdy: 3.1
Code:
https://s3-us-west-2.amazonaws.com/sandworm/vendor/easyXDM.min.js
GET /sandworm/vendor/easyXDM.min.js HTTP/1.1
Host: s3-us-west-2.amazonaws.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: */*
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://account.leagueoflegends.com/pm.html?xdm_e=http%3A%2F%2Feuw.leagueoflegends.com&xdm_c=default9513&xdm_p=1
Connection: keep-alive
HTTP/1.1 200 OK
x-amz-id-2: censored
x-amz-request-id: censored
Date: Sun, 16 Feb 2014 23:37:07 GMT
Last-Modified: Fri, 14 Jun 2013 05:57:44 GMT
Etag: "censored"
Accept-Ranges: bytes
Content-Type: application/x-javascript
Content-Length: 19863
Server: AmazonS3
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)