Hallo,

Ik zit met een probleem ik probeer via een cUrl script in te loggen op een website alleen deze website heeft in hidden input met een token die na elke refresh weer anders is.

Met het volgende script probeer ik eerst de token op te halen en dan daarna een post te doen naar de website met mijn inlog gegevens maar dan is de token dus weer verandert is hier een manier voor om wel in te kunnen loggen?


<?php
include('html_dom.php');

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_URL, 'http://webrooster.tabor.nl/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4");
$str = curl_exec($curl);
curl_close($curl);

$dom = new simple_html_dom();
$dom->load($str);

$nodes = $dom->find("input[type=hidden]");
foreach($nodes as $node){
	$val = $node->value;
}

$post = "pNumber=gebruiekrsnaam&pWord=wachtwword&loginForm=Login&token=".$val;
   
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL, 'http://webrooster.tabor.nl/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 
$store = curl_exec($ch);
$content = curl_exec($ch);
 
echo $content;
?>
Ik vrees dat het op deze manier beveiligd is tegen scraping. Hebben ze geen API die je functioneel kan gebruiken?

[offtopic]Ha, grappig, mijn kat heette net zoals jouw school heet, wat toevallig ;-)[/offtopic]
Haha, nee ze hebben geen API jammer dat ze het dan zo beveiligd hebben.
Wat je waarschijnlijk vergeet is het meesturen van het sessie-id via een cookie header? Daarom wordt het meegestuurde token wss niet gematcht met je sessie, omdat je deze informatie niet verschaft.
Oke ik ga als ik thuis ben even bekijken wat je bedoelt, bedankt alvast.

Reageren