Evitez la saisie d'un mot de passe pour accéder à une page Web sécurisée.
(VBS)
L'accès à un grand nombre de site Web est restreint et controlé par un mot de passe.
Dans certains cas, la sécurisation de l'accès n'a pas grande importance et vous pouvez juger que votre mot de passe Windows est suffisant ou que la localisation de votre PC empeche l'accè de tierces personnes.
Dans ces cas là, le fait de devoir taper régulièrement un mot de passe devenu inutile devient vite une contrainte.
Il suffit de créer un script qui va se charger de saisir le mot de passe à votre place.
Attention, votre mot de passe sera accessible à toute personne pouvant lire le script ! N'y laissez pas votre numéro de carte bancaire...
La plupart des formulaires de saisie de mot de passe sont de simples formulaires placés dans une page Web (page html, php, asp...). Il suffit d'examiner le code source (sur IE, clic droit à coté du formulaire, puis "afficher la source") pour y trouver le code du formulaire.
En général, il se présente comme suit :
<FORM NAME="frm" ACTION="http://page_web.html" METHOD="get">
<INPUT TYPE="text" NAME="user_name"> login
<BR><INPUT TYPE="password" NAME="pass"> mot de passe
<BR><INPUT TYPE="submit" VALUE="cliquez">
</FORM>
Ce qui donne un formulaire ressemblant à celui-ci :
Plusieurs techniques pour éviter de taper le mot de passe :
- dans le cas où le formulaire est transmis par la méthode "get" (comme dans l'exemple ci-dessus, dans la balise <FORM>, on note METHOD="get", et non METHOD="post"), on peut généralement taper directement dans la barre d'adresse le nom de la page Web visée par le formulaire, affectée des paramètres transmis au formulaire (mot de passe, login, et éventuellement d'autres input par exemple de type "hidden").
Dans notre exemple, il suffit d'ouvrir :
http://page_web.html?user_name=toto&pass=zaza
Pour éviter de taper cette adresse, on peut l'inscrire dans une page html de redirection qu'il suffira d'ouvrir pour afficher la page sécurisée.
Le code de cette page peut par exemple être :
<HTML><HEAD>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://page_web.html?user_name=toto&pass=zaza">
</HEAD><BODY></BODY></HTML>
- Une autre solution consiste à utiliser VB pour simuler la frappe de caractères sur la page html.
Une page VBScript peut ainsi ouvrir la page contenant le formulaire puis y inscrire login et mot de passe avant d'envoyer le formulaire :
Set Sh = WScript.CreateObject("WScript.Shell")
sh.run "iexplore.exe http://jacxl.free.fr/cours_xl/mdp2.html"
wscript.sleep(2000)
sh.sendkeys"{TAB}{TAB}toto{TAB}zaza"
wscript.sleep(500)
sh.sendkeys"{TAB}~"
cliquez ici
La méthode peut fonctionner correctement sur des sites simples (pas de frames, peu de liens) et peu évolutifs. Elle est un peu lourde, il faut compter le nombre de TAB nécessaires pour accéder aux zones de saisie, et prévoir des temps d'attente suffisants entre chaque opération (risque d'échec si la connexion est mauvaise).
- Une solution plus rationnelle consiste à piloter Internet Explorer par VB et à remplir directement le formulaire en utilisant de préférence son nom.
Dans le cas de l'exemple ci-dessus le script peut être :
Set ie = CreateObject("internetexplorer.application")
ie.Navigate ("http://jacxl.free.fr/cours_xl/mdp.html")
ie.visible=true
Do While ie.Busy
wscript.sleep (100)
Loop
wscript.sleep (2000)
Set dct = ie.Document.parentwindow.frames.Item(1).frames.Item(1).document
dct.frm.user_name.value="toto"
dct.frm.pass.value="zaza"
dct.frm.submit
(Notez la gestion des frames)
cliquez ici