per fare una prova mi sono registrato qui
user= prova12345
psw= prova12345
ho installato tamper data.
Come procedo?
per fare una prova mi sono registrato qui
user= prova12345
psw= prova12345
ho installato tamper data.
Come procedo?
ho provato cosi
ma non funzia......dove sbaglio?Codice PHP:
<?php
function get_http_response($URL) {
$handle = curl_init(); // apriamo una sessione CURL, il cui identificativo è $handle;
// curl_setopt() imposta l'opzione che specifichi come secondo parametro con il valore che specifichi nel terzo:
// (il primo parametro è sempre l'identificativo di connessione!)
curl_setopt($handle, CURLOPT_URL, $URL); // qui gli diciamo la risorsa da raggiungere
curl_setopt($handle, CURLOPT_HEADER, false); // qui specifichiamo di non includere nell'output l'intestazione che gli forniamo in input
// adesso confezioniamo l'header HTTP:
$http_header = array(
"Host=www.lastampa.it",
"User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
"Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language=it-it,it;q=0.8,en-us;q=0.5,en;q=0.3",
"Accept-Encoding=gzip,deflate",
"Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Keep-Alive=300",
"Connection=keep-alive",
"Referer=http://www.lastampa.it/forum/forum1.asp",
"Content-Type=application/x-www-form-urlencoded",
"Content-Length=82",
"POSTDATA=user=prova12345&psw=prova12345&login=LOGIN&link=%252Fforum%252Fforum1%252Easp%253F",
);
// ora gli diamo in pasto l'array di headers per inserirli nella richiesta:
curl_setopt($handle, CURLOPT_HTTPHEADER, $http_header);
curl_setopt($handle, CURLOPT_FRESH_CONNECT, true); // questa istruzione è per evitare di farsi restituire una versione cache della risorsa da richiedere
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); // impostando a TRUE questa opzione gli imponiamo di non stamparla, ma di restituirla come output della funzione di esecuzione della chiamata curl_exec():
$content = curl_exec($handle); // facciamo eseguire la richiesta da curl_exec() e ne intercettiamo il responso restituito nella variabile $content;
curl_close($handle); // ricordarsi di chiudere le connessioni aperte... SEMPRE! (O ti giochi la memoria)
return $content;
}
get_http_response("http://www.lastampa.it/mypage/inc/controlli.asp");
?>
e per di più, il sito al quale dovrò accedere con CURL, usa come action del form j_security_check.
Sempre + difficile
e usarecodice:$stringa = file_get_contents('http://account:password@www.sito.com');
Ciao,Originariamente inviato da rickystra
ho provato cosi
ma non funzia......dove sbaglio?Codice PHP:
...
e per di più, il sito al quale dovrò accedere con CURL, usa come action del form j_security_check.
Sempre + difficile
a occhio il primo errore che vedo è che non stampi nulla, ti manca l'echo:
Poi per quanto riguarda i dati da postare, non metterli nell'array contenente i dati del client per la richiesta http, usa le opzioni apposite di CURL:Codice PHP:
echo get_http_response($URL);
(Togli i dati custom che hai messo nell'array http_headers).Codice PHP:
// specifica che vuoi inviare dei dati di tipo post
curl_setopt($handle, CURLOPT_POST, true);
// confeziona i dati:
$postData = array("user_id" => "myUser", "user_password" => "myPass");
// inseriscili nella richiesta CURL
curl_setopt($handle, CURLOPT_POSTFIELDS, $postData);
Emanuele DG
<?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
Intellectual property
La concatenazione dei dati nell'URL in quel modo, se non sbaglio serve per inviarli ad una richiesta di autenticazione HTTP del tipo:Originariamente inviato da Marcolino's
e usarecodice:$stringa = file_get_contents('http://account:password@www.sito.com');
WWW-Authenticate: Basic realm="nome area"
Nel caso di rickystra invece l'autenticazione è tramite script PHP che riceve i dati via vettore POST.
Emanuele DG
<?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
Intellectual property
in questa variabile ho aggiunto login e link, cosi come mi visualizza tamper data nel POSTDATACodice PHP:
<?php
function get_http_response($URL) {
$handle = curl_init(); // apriamo una sessione CURL, il cui identificativo è $handle;
// curl_setopt() imposta l'opzione che specifichi come secondo parametro con il valore che specifichi nel terzo:
// (il primo parametro è sempre l'identificativo di connessione!)
curl_setopt($handle, CURLOPT_URL, $URL); // qui gli diciamo la risorsa da raggiungere
curl_setopt($handle, CURLOPT_HEADER, false); // qui specifichiamo di non includere nell'output l'intestazione che gli forniamo in input
// specifica che vuoi inviare dei dati di tipo post
curl_setopt($handle, CURLOPT_POST, true);
// confeziona i dati:
$postData = array("user" => "prova12345", "psw" => "prova12345", "login" => "LOGIN", "link" => "%252Fforum%252Fforum1%252Easp%253F");
// inseriscili nella richiesta CURL
curl_setopt($handle, CURLOPT_POSTFIELDS, $postData);
// adesso confezioniamo l'header HTTP:
$http_header = array(
"User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
"Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language=it-it,it;q=0.8,en-us;q=0.5,en;q=0.3",
"Accept-Encoding=gzip,deflate",
"Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Keep-Alive=300",
"Connection=keep-alive",
"Content-Type=application/x-www-form-urlencoded",
"Content-Length=82",
);
// ora gli diamo in pasto l'array di headers per inserirli nella richiesta:
curl_setopt($handle, CURLOPT_HTTPHEADER, $http_header);
curl_setopt($handle, CURLOPT_FRESH_CONNECT, true); // questa istruzione è per evitare di farsi restituire una versione cache della risorsa da richiedere
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); // impostando a TRUE questa opzione gli imponiamo di non stamparla, ma di restituirla come output della funzione di esecuzione della chiamata curl_exec():
$content = curl_exec($handle); // facciamo eseguire la richiesta da curl_exec() e ne intercettiamo il responso restituito nella variabile $content;
curl_close($handle); // ricordarsi di chiudere le connessioni aperte... SEMPRE! (O ti giochi la memoria)
return $content;
}
echo get_http_response("http://www.lastampa.it/mypage/inc/controlli.asp");
?>
ma ancora niente, ora mi dice:Codice PHP:
$postData = array("user" => "prova12345", "psw" => "prova12345", "login" => "LOGIN", "link" => "%252Fforum%252Fforum1%252Easp%253F");
Bad Request (Invalid Header Name)
Eh sì, perché con le righe:Originariamente inviato da rickystra
ma ancora niente, ora mi dice:
Bad Request (Invalid Header Name)
gli dici che la richiesta è di 82 bytes, ma nella realtà non lo è, poi il MIME che specifichi con Content-Type è ridondante perché una riga simile con il MIME la genera già CURL, per questo ti dicevo di togliere quelle righe dall'array.codice:"Content-Length=82", "Content-Type=application/x-www-form-urlencoded",
Con Tamper Data puoi visualizzare anche l'header della tua richiesta, se lo fai vedi l'errore.
Il server fa un controllo formale della correttezza dell'header, che, nel caso fallisca, genera un responso con HTTP status 500
Emanuele DG
<?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
Intellectual property
ho tolto anche quelle 2 righe ma non funziona.
Ti chiedo troppo se provi lo script usando la user e la psw che ho scritto in un post precedente?
Grazie!!!
Uhm dovrebbe sì, ma provare non costa nulla, mi pare che la modifica avviene in modo trasparente, via GET o via POST non dovrebbe avere differenza in quel caso.Originariamente inviato da emanueledg
La concatenazione dei dati nell'URL in quel modo, se non sbaglio serve per inviarli ad una richiesta di autenticazione HTTP del tipo:
WWW-Authenticate: Basic realm="nome area"
Nel caso di rickystra invece l'autenticazione è tramite script PHP che riceve i dati via vettore POST.