Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1399 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  S'authentifier sur une appli web en https

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

S'authentifier sur une appli web en https

n°2229139
rufo
Pas me confondre avec Lycos!
Posté le 26-05-2014 à 17:49:08  profilanswer
 

Bonjour,
 
Je voudrais automatiser certaines actions sur une appli web qui nécessite, pour accéder au contenu, de s'authentifier en https. J'ai essayer avec la lib Simpletest, mais ça marche pas, cette lib semble avoir un pb avec le ssl (elle fait du tls à la place) :/
 
Est-ce vous connaitriez une lib en PHP permettant relativement facilement de se connecter en https (ssl:443) à uue appli web (avec, bien entendu, la possibilité de poster des formulaires en POST), svp ?
 
Merci par avance pour votre aide :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 26-05-2014 à 17:49:08  profilanswer
 

n°2229202
Pablo Escr​obarbe
Retour d'exil
Posté le 27-05-2014 à 09:26:10  profilanswer
 

Simpletest c'est pas juste pour les tests unitaire ?

n°2229204
flo850
moi je
Posté le 27-05-2014 à 10:20:31  profilanswer
 

curl ?


---------------

n°2229207
rufo
Pas me confondre avec Lycos!
Posté le 27-05-2014 à 10:52:32  profilanswer
 

Pablo Escrobarbe a écrit :

Simpletest c'est pas juste pour les tests unitaire ?


Non, tu peux faire des tests d'intégration avec. En tout cas, moi, j'ai pu le faire pour une appli web il y a qq années, mais l'auth se faisait sans https.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229208
rufo
Pas me confondre avec Lycos!
Posté le 27-05-2014 à 10:56:33  profilanswer
 


Oui, mais j'aurais bien aimé qq chose d'un peu plus haut niveau :/ Mais si y'a rien d'autre, ben j'essaierai...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229209
flo850
moi je
Posté le 27-05-2014 à 10:57:21  profilanswer
 

N'en sachant pas plus  sur ce que tu veux faire, je ne vais pas pouvoir être plus précis


---------------

n°2229227
rufo
Pas me confondre avec Lycos!
Posté le 27-05-2014 à 14:02:24  profilanswer
 

L'idée est de se connecter sur une application web (donc authentification via du https) puis, d'aller sur certaines pages et, en fonction, d'extraire quelques données bien identifiées et suivant la valeur de ses données faire quelques actions sur l'appli (ces actions se traduisant par le remplissage d'un formulaire et son envoi au serveur). Comme il s'agit d'actions répétitives, je me suis dit que ça serait plus pratique de les automatiser. On est assez proche de tests d'intégration d'une appli web ;) Le truc, c'est que je souhaite éviter de devoir passer par l'ouverture d'une instance d'un navigateur web quelconque (ça exclut du coup des outils comme AutoIt, Selenium...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229381
rufo
Pas me confondre avec Lycos!
Posté le 28-05-2014 à 15:27:45  profilanswer
 

Pouffff, je galère avec cURL pour la partie auth :cry:
 
Je me suis basé sur ce site : http://oseox.fr/curl/session.html
Et celui-là : http://www.dewep.net/Blog/Article-9/Utiliser-cURL-PHP


Message édité par rufo le 28-05-2014 à 15:55:34

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229400
dreameddea​th
Posté le 28-05-2014 à 16:34:20  profilanswer
 

J'ai trouvé ça :
http://unitstep.net/blog/2009/05/0 [...] ted-sites/
 
ça correspond non ?

n°2229406
rufo
Pas me confondre avec Lycos!
Posté le 28-05-2014 à 16:49:56  profilanswer
 

Moi aussi, j'ai trouvé cet article mais ça marche pas :( Je précise, j'ai fait la solution "moins secure"...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 28-05-2014 à 16:49:56  profilanswer
 

n°2229410
dreameddea​th
Posté le 28-05-2014 à 16:56:27  profilanswer
 

et tu as quoi comme erreur dans la log ?

n°2229411
rufo
Pas me confondre avec Lycos!
Posté le 28-05-2014 à 16:58:15  profilanswer
 

quel log ?
Moi, j'ai juste un false retourné suite au curt_exec :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229419
dreameddea​th
Posté le 28-05-2014 à 17:35:45  profilanswer
 

et curl_error /curl_errno ne te retourne rien ?
 
 
Car normalement tu devrais avoir une des erreurs de la libcurl http://curl.haxx.se/libcurl/c/libcurl-errors.html

Message cité 1 fois
Message édité par dreameddeath le 28-05-2014 à 17:38:52
n°2229443
czh
Posté le 28-05-2014 à 20:23:25  profilanswer
 

rufo a écrit :


Oui, mais j'aurais bien aimé qq chose d'un peu plus haut niveau :/ Mais si y'a rien d'autre, ben j'essaierai...


 
http://www.php.net/manual/fr/funct [...] php#108309
 
Bon après si t'as des besoins particuliers, ça peut ne pas être suffisant.

n°2229731
rufo
Pas me confondre avec Lycos!
Posté le 02-06-2014 à 13:45:40  profilanswer
 

czh a écrit :


 
http://www.php.net/manual/fr/funct [...] php#108309
 
Bon après si t'as des besoins particuliers, ça peut ne pas être suffisant.


Ca ressemble plus à une authentification http/https "apache" (via les header donc) et non à une authentification via un formulaire + une BD. J'ai testé malgré tout, sans succès :(


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229732
rufo
Pas me confondre avec Lycos!
Posté le 02-06-2014 à 13:50:05  profilanswer
 

dreameddeath a écrit :

et curl_error /curl_errno ne te retourne rien ?
 
 
Car normalement tu devrais avoir une des erreurs de la libcurl http://curl.haxx.se/libcurl/c/libcurl-errors.html


connect() timed out! (code 28) -> ça veut juste dire que ma requête pour m'authentifier n'aboutit pas, non ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2229742
czh
Posté le 02-06-2014 à 14:37:08  profilanswer
 

rufo a écrit :


Ca ressemble plus à une authentification http/https "apache" (via les header donc) et non à une authentification via un formulaire + une BD. J'ai testé malgré tout, sans succès :(


 
Pour l'authentification par formulaire, il faut fournir les paramètres dans le corps de la requête POST, récupérer le header Set-Cookie dans la réponse et réinjecter ce header dans le header Cookie des prochaine requêtes. Et il faut faire la même chose pour curl, à moins que le test ne soit constitué d'une requête unique consistant à tester l'authentification.
 
Exemple:
 

Code :
  1. $opts = array('http' =>
  2.   array(
  3.     'method'  => 'POST',
  4.     'content' => 'login=toto&motdepasse=secret',
  5.     'timeout' => 60
  6.   )
  7. );
  8.                        
  9. $context  = stream_context_create($opts);
  10. $url = 'https://'.$https_server;
  11. $result = file_get_contents($url, false, $context, -1, 40000);

n°2229748
rufo
Pas me confondre avec Lycos!
Posté le 02-06-2014 à 15:37:34  profilanswer
 

Avec curl, j'ai fait ça :

Code :
  1. $timeout  = 10;
  2. $urlBase  = 'https://serveur.fr/app/';
  3. $username = 'toto';
  4. $password = 'titi';
  5.  
  6. $cookies_file = dirname(__FILE__).'/cookies.txt';
  7.  
  8. /**************************************************
  9. * Première requête : Connexion
  10. **************************************************/
  11.  
  12. $url = $urlBase.'identification/default.cgi';
  13.  
  14. $userCredentials = array(
  15.                          '_cm_app' => 'SITFIN',
  16.                          '_cm_idtype' => '',
  17.                          '_cm_langue' => 'fr',
  18.                          '_cm_user=' => $username,
  19.                          '_cm_pwd=' => $password,
  20.                          'submit' => 'OK'
  21.                         );
  22. $userCredentials = http_build_query($userCredentials);
  23.  
  24. $ch = curl_init($url);
  25.  
  26. curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
  27. curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  28. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  29.  
  30. if (preg_match('`^https://`i', $url))
  31. {
  32.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  33.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  34. }
  35.  
  36. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  37. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  38. curl_setopt($ch, CURLOPT_NOBODY, true);
  39.  
  40. // Forcer cURL à utiliser un nouveau cookie de session
  41. curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  42.  
  43. curl_setopt($ch, CURLOPT_POST, true);
  44. curl_setopt($ch, CURLOPT_POSTFIELDS, $userCredentials);
  45.  
  46. // Fichier dans lequel cURL va écrire les cookies
  47. // (pour y stocker les cookies de session)
  48. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies_file);
  49.  
  50. curl_exec($ch);
  51.  
  52. echo curl_error($ch).' / '.curl_errno($ch);
  53.  
  54. curl_close($ch);


Y'a un truc qui cloche ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  S'authentifier sur une appli web en https

 

Sujets relatifs
S.O.S Installation Silencieuse openSSL - polarSSL pour communication HTTPS client <- > serveur
[VBA] Faisabilité d'une appli VBA multiclientsGestion des timestamps + TZ sur stack Java (appli + DB)
Quel langage pour une petite appli web?S.O.S excel/access VBA
ajouter pub dans une appli windows desktopEnvoi formulaire POST en HTTPS depuis page HTTP
[FB]appli Facebook et https 
Plus de sujets relatifs à : S'authentifier sur une appli web en https


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR