Ik probeer door middel van CURL in te loggen op een bepaalde website (gebouwd op Django). Deze is echter beveiligd met een CSRF token.
Die heb ik in de cookies kunnen achterhalen, daar ligt dus niet de fout. Toch blijft de server een HTTP 403 code geven als ik een request stuur naar de server om in te loggen.
Onderstaande code gebruik ik:
Zie ik misschien iets over het hoofd? Ik hoop dat een van jullie mij hierbij kan helpen.
Groet,
Andy
Die heb ik in de cookies kunnen achterhalen, daar ligt dus niet de fout. Toch blijft de server een HTTP 403 code geven als ik een request stuur naar de server om in te loggen.
Onderstaande code gebruik ik:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| <?php error_reporting(E_ALL); function get_data($url, $post=''){ $ch = curl_init($url); if(!empty($post)){ curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,$post); $headers = array(); $headers[] = 'Host: gsraegir.nl'; $headers[] = 'Connection: keep-alive'; $headers[] = 'Content-Length: 120'; $headers[] = 'Origin: http://gsraegir.nl'; $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'; $headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8'; $headers[] = 'Accept: */*'; $headers[] = 'X-Requested-With: XMLHttpRequest'; $headers[] = 'X-CSRFToken: VENFR1tv32Ab9PKZEMC5bjMG2OP68lXk'; $headers[] = 'Referer: http://gsraegir.nl/nl/'; $headers[] = 'Accept-Encoding: gzip, deflate'; $headers[] = 'Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4'; $headers[] = 'Cookie: django_language=nl; sessionid=8s8ajcps6dzo57ngmchw7gnj4225n2p2; csrftoken=VENFR1tv32Ab9PKZEMC5bjMG2OP68lXk'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } curl_setopt($ch,CURLOPT_COOKIEJAR,realpath('.').'/cookies.txt'); curl_setopt($ch,CURLOPT_COOKIEFILE,realpath('.').'/cookies.txt'); curl_setopt($ch,CURLOPT_URL,$url); //curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); $result = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); echo $url.':'.$httpcode.'<br />'; return $result; } $url = 'http://gsraegir.nl/nl/'; get_data($url); $post = 'csrfmiddlewaretoken=VENFR1tv32Ab9PKZEMC5bjMG2OP68lXk&id_username=andydewit&id_password=mypassword&this_is_the_login_form=1&next='; $url = 'http://gsraegir.nl/login/'; echo get_data($url, $post); get_data('http://gsraegir.nl/nl/'); ?> |
Zie ik misschien iets over het hoofd? Ik hoop dat een van jullie mij hierbij kan helpen.
Groet,
Andy