• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Login a sito remoto tramite Libcurl

ken_korn

Nuovo utente
Autore del topic
27 Aprile 2017
17
28
Miglior risposta
0
Voglio realizzare una piccola applicazione online in Php dove io possa memorizzare le mie credenziali di accesso a vari siti e successivamente, sempre attraverso l'app, loggarmi ad essi senza dover reimettere tali credenziali, il tutto ovviamente nel medesimo browser da cui accedo all'app. Obiettivo è quindi creare una sorta di portachiavi virtuale che mi permetta di loggarmi ovunque mi trovi senza dover ogni volta ricordarmi username/password di decine di siti.

Il cuore dell'app è quindi la connessione ad un sito coi dati di login/password (che gestisco tramite Curl), purtroppo però, nonostante non ricevo errori dalla connessione in sè (usando la funzione curl_error), non riesco a loggarmi nei siti richiesti, addirrittura in alcuni ricevo una schermata di un firewall.
Ecco il mio codice:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Preciso che sono ancora un perfetto principiante con questa libreria e che il codice sopra riportato non è ancora sistemato a dovere in quanto il mio obiettivo al momento è far funzionare l'applicazione e solo dopo concentrarmi sulla sua ottimizzazione.

Ringrazio comunque in anticipo per le eventuali risposte.
 
Ultima modifica:
Sei sicuro che i dati che passi in post sono corretti?
Inoltre, alcuni siti web utilizzano appositi token proprio per bloccare le richieste illegittime (dunque non provenienti dal sito web stesso) , hai mai sentito parlare di CSRF?
Perfavore, Entra oppure Registrati per vedere i Link!

Inoltre, se sono protetti da firewall le richieste possono essere rifiutate se non forniscono un user agent adeguato.
 
Ho modificato il codice, aggiungendo e modificando alcune cose come l'user-agent, un array contente tutti i campi di input del form, una funzione di Php per la creazione di una query ecc. Preciso che ho tralasciato accortezze come l'incapsulamento dei dati e una migliore organizzazione dei dati perchè il mio fine in questa fase è solo far funzionare lo script.
Di seguito elenco i siti che ho usato come test* e il risultato ottenuto, i test sono stati effettuati eseguendo lo script in locale. A fianco al nome di ciascun sito ho inserito una parola (YES o NO) per indicare l'esito del login:

Altervista - NO
Perfavore, Entra oppure Registrati per vedere i Link!

Errori segnalati da curl: 0
Schermata dopo il login:
qWZII9P.jpg

MrWebmaster - YES
Perfavore, Entra oppure Registrati per vedere i Link!

Errori segnalati da curl:0
Il login è andato a buon fine. Ora ci sarà da lavorare sul mantenere tale sessione per poter navigare nel sito da utente loggato.

IProgrammatori - NO
Perfavore, Entra oppure Registrati per vedere i Link!

Errori segnalati da curl:0
Mi appare pagina di login del sito (ovviamente il login non è stato effetuato), la quale per giunta manca del suo file css associato

Inforge - NO
Perfavore, Entra oppure Registrati per vedere i Link!

Errori segnalati da curl:0
Mi appare la seguente schermata di firewall che blocca la mia richiesta di login in quanto la identifica come un attacco bruteforce
lOACNom.jpg

Sciax2 - NO
Sciax2.it Forum
Errori segnalati da curl:0
Mi appare la pagina di registrazione del sito, con un'aggiunta per quanto riguarda il box della verifica anti-Spam
Q3im6JZ.jpg

*I siti scelti sono quelli che uso di più, quelli per i quali ho voluto creare questo piccolo portachiavi online per loggarmi automaticamente ogni giorno anche da diversi pc. Ho voluto fare questa precisazione giusto per evitare che qualcuno pensi che il mio intento è fare "prodezze" da cracker o da lamer
 
Ultima modifica:
Sei sicuro che i dati che passi in post sono corretti?
Inoltre, alcuni siti web utilizzano appositi token proprio per bloccare le richieste illegittime (dunque non provenienti dal sito web stesso) , hai mai sentito parlare di CSRF?
Perfavore, Entra oppure Registrati per vedere i Link!

Inoltre, se sono protetti da firewall le richieste possono essere rifiutate se non forniscono un user agent adeguato.
Ti ringrazio innanzitutto per la risposta. I dati passati sono corretti, sia i campi di input (ho inserito tutti quelli presenti nel form di ciascun sito, compresi quelli di tipo hidden ovviamente) che i relativi valori. Prendendo spunto dal link che mi hai condiviso, inizierò a studiare più approfonditamente come vengono gestite le richieste ai server e le relative procedure di sicurezza in attesa che magari qualcuno voglia aiutarmi a risolvere il problema del login (dal momento che dal punto di vista applicativo funziona, altrimenti non si sarebbe mai collegato a Webmaster) e/ o quello di poter mantenere la sessione col sito in cui mi sono loggato.
 
Ti ringrazio innanzitutto per la risposta. I dati passati sono corretti, sia i campi di input (ho inserito tutti quelli presenti nel form di ciascun sito, compresi quelli di tipo hidden ovviamente) che i relativi valori. Prendendo spunto dal link che mi hai condiviso, inizierò a studiare più approfonditamente come vengono gestite le richieste ai server e le relative procedure di sicurezza in attesa che magari qualcuno voglia aiutarmi a risolvere il problema del login (dal momento che dal punto di vista applicativo funziona, altrimenti non si sarebbe mai collegato a Webmaster) e/ o quello di poter mantenere la sessione col sito in cui mi sono loggato.

Di nulla!
Come puoi ben vedere nel caso di altervista si tratta quasi sicuramente di un filtro anti CSRF, quindi credo che difficilmente tu possa capire come funziona e riuscire ad aggirarlo.
Purtroppo la stessa cosa vale per sucuri, anche se forse giocando un po' con l'header del pacchetto si può fare qualcosa...
Per quanto riguarda la sessione, generalmente i siti web utilizzano i cookie per mantenere la sessione attiva, dai un'occhiata a questa discussione:
Perfavore, Entra oppure Registrati per vedere i Link!
 
Di nulla!
Come puoi ben vedere nel caso di altervista si tratta quasi sicuramente di un filtro anti CSRF, quindi credo che difficilmente tu possa capire come funziona e riuscire ad aggirarlo.
Purtroppo la stessa cosa vale per sucuri, anche se forse giocando un po' con l'header del pacchetto si può fare qualcosa...
Per quanto riguarda la sessione, generalmente i siti web utilizzano i cookie per mantenere la sessione attiva, dai un'occhiata a questa discussione:
Perfavore, Entra oppure Registrati per vedere i Link!
Grazie del link. Per quanto riguarda il filtro anti CSRF, credi sia difficile che si possa capire o che io principiante possa capirne il funzionamento?
Ora comunque farò dei test sia agendo sull'header sia sul referal , vediamo cosa ne esce fuori, per ora sto usando gli stessi header che il mio browser (Firefox) invia alle pagine in questione ma sembra non funzionare ancora. Inoltre avevo in mente di provare a caricare la pagina ma con i cookie già presenti nello script così da non dovermi più preoccupare del login o della sessione in sè.
 
Ho creato un repository su GitHub in modo che chiunque sia interessato a questo piccolo progetto possa seguirlo e/o darmi una mano a svilupparlo

Perfavore, Entra oppure Registrati per vedere i Link!