Bonjour,
j'ai
comme FAI RENATER, je suis en résidence universitaire et j'ai une page
de connexion pour accéder à ma connexion. J'aimerai me connecter
automatiquement (toutes les 4h) et/ou quand j'allume mon pc,
automatiquement.
Quels outils me permettront de remplir automatiquement un formulaire
(d'une page web) et de simuler la validation sur un navigateur web?
Merci d'avance.
# Tests unitaires
Posté par dave_null (site web personnel) . Évalué à 1.
Des outils de tests unitaires comme Selenium peuvent répondre à ton besoin.
# curl
Posté par i M@N (site web personnel) . Évalué à 5.
un script avec curl en utilisant les options relatives à l'user agent, aux cookies et éventuellement au ssl.
récupération de la page de login
grep du source du form avec une regex pour trouver l'id de session et d'autres valeurs à passer en POST à la page qui traîte les données saisies dans le form (Firebug et son onglet réseau est très pratique pour voir le source du POST)
envoie des données vers cette page
wind0w$ suxX, GNU/Linux roxX!
[^] # Re: curl
Posté par dafp . Évalué à 1.
je connaissais un peu curl (de nom surtout, mais ne me suis jamais utilisé). J'essai tout d'abbord mechanize qui parrait être une super solution.
# Perl et Mech
Posté par jben . Évalué à 10. Dernière modification le 02 avril 2013 à 23:57.
Je te propose Mech, alias
WWW::Mechanize
, qui correspond à tes besoins.Par exemple, un simple script pour se connecter à un FreeWifi (lancé automagiquement par mon gestionnaire de connexion). Il devrait t'être très facile de l'adapter.
Explications :
Roulez jeunesse.
[^] # Re: Perl et Mech
Posté par palm123 (site web personnel) . Évalué à 3.
Quelques liens si tu veux faire du Perl
http://articles.mongueurs.net/magazines/linuxmag56.html
http://articles.mongueurs.net/magazines/linuxmag58.html
http://articles.mongueurs.net/magazines/linuxmag75.html
ウィズコロナ
[^] # Re: Perl et Mech
Posté par dafp . Évalué à 1.
Oh pas mal, merci.
[^] # Re: Perl et Mech
Posté par dafp . Évalué à 1.
Je ne sais pas programmer en Perl, mais ce que tu me donnes me semble magique, donc je vais modifier de ce pas.
Merci.
[^] # Re: Perl et Mech
Posté par dafp . Évalué à 1.
J'ai mis pratiquement la même chose. J'ai bien selectionné le form par son nom, changer les valeurs des champs (on les récuppère par leur nom aussi?), puis validé. Mais ça ne marche pas.
j'ai vérifié la page ($bot->content), et j'ai bien ma page.
Ce ne serait pas le fait que derrière la page de connexion, il y a appel vers un script auth.cgi, et donc non pris en compte par mon script?
(j'ai dû déjà ne pas prendre la page principale, car contenant des iframes vers le formulaire principal)
# ou en Python avec mechanize
Posté par palm123 (site web personnel) . Évalué à 4.
tu trouveras quelques exemples là
http://wwwsearch.sourceforge.net/mechanize/
ou là
http://stackoverflow.com/questions/11064122/python-mechanize-setting-input-into-form
ウィズコロナ
# ou en java avec httpclient (apache)
Posté par bibitte . Évalué à 3. Dernière modification le 03 avril 2013 à 09:05.
Comme tout le monde y va de son language je t'indique que tu peux le faire aussi en java avec la lib apache httpclient => http://hc.apache.org/httpclient-3.x/
Perso je même si je maitrise plus le java que les autres languages, pour un truc aussi simple je le ferai plutot via un script perl ou python.
Mais c'est quand même bien de savoir que ça existe en java car parfois tu n'a pas le choix du language et tu dois quand même faire les choses.
[^] # Re: ou en java avec httpclient (apache)
Posté par dafp . Évalué à 0.
pas faux.
Je pense que je resterai sur perl pour mon problème.
Merci.
# utiliser les options du navigateur
Posté par NeoX . Évalué à 2.
pour memoriser les login/pass de ce site.
[^] # Re: utiliser les options du navigateur
Posté par dafp . Évalué à 1.
je voudrai que ça soit automatique et que je n'ai besoin d'ouvrir quoi que ce soit.
# Greasemonkey
Posté par Thibault (site web personnel) . Évalué à 1.
Je sais pas si ça peut être une piste mais j'utilise un script Greasemonkey pour me connecter à un SSO automatiquement quand il me le demande.
Mais le mot de passe est en clair dans le fichier, et si le SSO réaffiche le formulaire directement quand la tentative a échoué, il y a un risque de partir en boucle :-)
[^] # Re: Greasemonkey
Posté par dafp . Évalué à 0.
pas mal. Superbe même. Sauf que je ne sais pas pourquoi, l'interface de connexion me dit toujours que le mot de pass ou le login n'est pas bon, mais quand je stop la page (car elle tourne en rond) et que je laisse ce qu'il y a d'écrit, je valide et pouf, ça marche…
J'aimerai comprendre pourquoi.
Car le formulaire est bien validé vu que la page ne cesse de se recharger, mais rien n'y fait, il veut pas me connecter, il me faut aller sur le bouton manuelement pour valider et pouvoir me connecter…
Avez vous eu déjà ce même problème?
merci.
[^] # Re: Greasemonkey
Posté par dafp . Évalué à 0.
Non c'est bon. J'ai du lire plus correctement le code du site. Il passait par une fonction js pour créer la connexion, donc j'ai du appeler cette dernière avant de valider.
Le portail de connexion s'appelle SonicWall (pour ceux qui aurait la même chose et qui voudrait savoir comment faire la même chose: contactez-moi -le code pourrait être différent).
Merci à tous.
# arf des choses bien compliquées pour un probleme tout simple
Posté par ratw3 . Évalué à -1.
Salut,
Oublis perl/java/php si tu ne sais pas dev tu peux faire beaucoup plus simple:
1) tu télécharges un proxy d interception comme paros (www.paros.org)
tu browses le site avec paros en activant la fonction "Trap"
Cela va te permette de voir avec exactitude les requetes envoyés à ton serveur (GET/POST)
2) A partir de la tu fais un shell script avec curl du genre:
exemple pour la premiere barriere de login:
curl –-cookie-jar /tmp/cjar --data “username=prout&password=12345″ http://tonsite.com/login.php"
ensuite tu peux reutiliser ce cookie pour faire par exemple
curl –b /tmp/cjar --data “validation=yes″ http://tonsite.com/validation.php"
bonne chance!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.