Authentification PHP et Yahoo IM

Authentification PHP et Yahoo IM - PHP - Programmation

Marsh Posté le 14-02-2005 à 11:42:37    

Salut!
 
Je me lance depuis quelque temp sur la mise en place d'un script cgi qui permeterai de poster des messages avec yahoo Messenger.
Apres bocou de mal a decoder le protocol YMSG, j'ai repris du code de kopete et le script fonctionne !
Maintenant il reste a penser a une phase d'autentification. Je ne veut pas faire fonctionner le script depuis un formulaire. Je voudrai avoir la possibilité qu'un message me soit envoyer automatique lors d'une inscription mon site.
Si je fais une inscription préalable + une restriction d'execution par rapport a REMOTE_ADDR : les personnes hebergé chez un meme hebergeur aurrai la meme IP ?
Comment lancer le script automatiquement ?
faire une iframe pointant dessus ?
 
Je pense ne pas etre tres claire, mais pour ressumer j'aimerer un processus d'authentification le plus simple pour l'utilisateur, en esseillant de ne pas faire passer le mot de passe de l'utilisateur, et le tout en "automatique" pas passer par un formulaire...
 
Merki d'avance
 
ps: Si vous etes intérrésé par ce cgi sa serai cool de me faire savoir

Reply

Marsh Posté le 14-02-2005 à 11:42:37   

Reply

Marsh Posté le 14-02-2005 à 11:51:28    

Hummm moi je verrais bien un cookie d'une durée de 10 ans avec le mot de passe du gars dedans mais chiffré bien sur. Mais bon comme chacun sais les cookies c'est un peu instable...

Reply

Marsh Posté le 14-02-2005 à 12:13:44    

Dwogsi a écrit :

Hummm moi je verrais bien un cookie d'une durée de 10 ans avec le mot de passe du gars dedans mais chiffré bien sur. Mais bon comme chacun sais les cookies c'est un peu instable...


Le cookie est stocké chez le client? c po le but.
 
Je vais donner un exemple:
Tu fais un site perso chez free, et chaque fois que quelqu'un se connect dessus tu veut recevoir un msg sur Yahoo Messenger.
L'authentification et le dialogue est plus entre les 2 serveurs (Free/le serveur ou il y a le cgi). Et ce qui faudrai surtout po c que le visiteur voit soit dans la source ou pire dans l'URL le mot de passe de Yahoo!Messenger

Reply

Marsh Posté le 14-02-2005 à 12:18:32    

bin je ne comprend pas ou est le probleme...
 
tu utilises exec
tu peux egalement jouer avec les Header : lorsque l'utilisateur se log, tu l'envoi vers le cgi, qui lui, apres t'avoir envoyer le msg, le renvoi vers le site !


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-02-2005 à 12:33:06    

KangOl a écrit :

tu peux egalement jouer avec les Header : lorsque l'utilisateur se log, tu l'envoi vers le cgi, qui lui, apres t'avoir envoyer le msg, le renvoi vers le site !


 
Oki
si je fait une page : index.php

Code :
  1. <?php
  2. header("Location: http://server/cgi-bin/script_yahoo.cgi" );
  3. ?>


et que ce script revoie lui meme une redirection sur la "vrai" page d'acceil.
Et ben c bien le navigateur qui a changer de site, si le client regarde dans son historique il trouvera bien "http://server/cgi-bin/script_yahoo.cgi" et si je rajout le passage des code par GET dans URL il vera tt ?

Reply

Marsh Posté le 14-02-2005 à 13:39:38    

non, je ne pense pas que l'utilsateur verra l'url !
 
au fait, il faut que la page d'acceuille renvoi au cgi avec les données en POST.
le cgi (qui s'execute coté serveur, donc pas de trace chez l'utilisateur) va redirection l'utilsateur vers la bonne page.
au final, l'utilsateur ne verra que le "faux" index. si il tente de revenir en arriere, une nouvelle requete sur le cgi se fera (et donc re redirection). faut juste gerer les "doublons" dans le cgi...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-02-2005 à 14:16:27    

KangOl a écrit :

non, je ne pense pas que l'utilsateur verra l'url !


Pour tester cela j'ai fait 3 fichiers php

Code :
  1. a.php => header("Location: b.php" );
  2. b.php => header("Location: c.php" );
  3. c.php => echo "Helo world!";


J'ecoute betement les trames avec ethereal bilan on a bien une demande GET pour les 3 pages...
 
comment on envoye des donnée en POST sans formulaire ?
 
Je suis en train de voir une solution avec les soket et PHP. Mais n'existe t'il po moins complexe ?

Reply

Marsh Posté le 14-02-2005 à 14:24:11    

pour le POST, tu fais un formulaire en hidden avec un javascript qui fait le submit tout seul...
tu peux egalement creer la requete en php...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-02-2005 à 15:20:47    

Je dis peut être une bétise, mais est ce qu'il ne peut pas simplement inclure son script dans sa page php à l'aide d'un simple include?
Aprés pour le probléme de POST et de GET, une solution de bidouillage serait de modifier les variables $_POST et $_GET (si c'est possible) afin de faire croire au script qu'il a bien été apeller comme il faut.
Mais la meilleure des solutions seraient qu'il modifie son script pour qu'il soit utilisable sous forme de fonction ou d'objet php qui prend les valeurs à utiliser par paramêtre et non plus par $_GET ou $_POST. Ca simpliefierait les chôses je penses.
 
En tout cas, avec les solutions que je propose le mot de passe yahoo et le pseudo yahoo ne se baladeraient plus n'importe où sur le net.


Message édité par omega2 le 14-02-2005 à 15:22:04
Reply

Marsh Posté le 14-02-2005 à 15:22:52    

il peux egalement appeler la page depuis le script php ! comme ca c'est totalement invisible pour l'utilisateur...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-02-2005 à 15:22:52   

Reply

Marsh Posté le 14-02-2005 à 16:46:11    

Helas le script n'est pas en PHP!
j'avais bien trouver quelques scripts qui pouvais se connecter au server yahoo mais je n'ai jms reussit a les faire fonctionner.
Mon cgi est en C ( tiré du prog Kopete http://kopete.kde.org/ et libyahoo2 http://libyahoo2.sourceforge.net/)
 
Sinon je comprend po trop la bidouille GET/POST, mais en regardant la doc du protocol HTTP (http://abcdrfc.free.fr/rfc-vf/rfc1945.html#8) il a l'air possible de faire du post avec les sockets.
 
Merci de vos diverses reponses  :)

Reply

Marsh Posté le 14-02-2005 à 17:11:48    

Tu peux aussi implementer le protocole necessaire en php :D

Reply

Marsh Posté le 14-02-2005 à 17:50:00    

Cerel a écrit :

Tu peux aussi implementer le protocole necessaire en php :D


Aller rien que pour toi j'ai fait un rapide calcul du nombre de ligne de code C de la bibliothque : 12500 lignes !
Les petits developpeurs de chez yahoo on changait de protcole (YMSG v10) pour eviter les logiciels de messagerie tierce, je t'explipe po la compléxité de l'autentification.
Mais je te sent d'attaque de creer un petit script PHP, tu fait quoi pendant les 3 prochaines années  :D  ?

Reply

Marsh Posté le 14-02-2005 à 18:27:10    

A priori, ce qui t'interesse c'est de te loguer + "auther" sur yahoo, et ensuite d'envoyer un message.
 
Me dit pas que les 12500 lignes de code ne sont que pour ca ...
Il doit y avoir la gestion integrale du protocole, chose dont tu n'as pas besoin.
 
Petite question, Yahoo ne permet-il pas d'envoyer des messages via une interface web ?

Reply

Marsh Posté le 14-02-2005 à 18:35:44    

Au fait, je viens de penser à un truc : un compte YM = un compte Yahoo mail.
De plus, YM prévient quand on recoit un mail dans la boite mail du compte.
Ca serait pas plus simple d'envoyer un mail à l'adresse de la boite mail que d'envoeyr un message YM?

Reply

Marsh Posté le 14-02-2005 à 19:08:29    

Cerel a écrit :

A priori, ce qui t'interesse c'est de te loguer + "auther" sur yahoo, et ensuite d'envoyer un message.
 
Me dit pas que les 12500 lignes de code ne sont que pour ca ...
Il doit y avoir la gestion integrale du protocole, chose dont tu n'as pas besoin.
 
Petite question, Yahoo ne permet-il pas d'envoyer des messages via une interface web ?


 
Il est vrai il y a bocooup de chose geré par libyahoo2 (Webcam, chat, avertisement email...) que je n'aurai pas besoin mais j'ai tenter d'implementer en C (je suis plus fort en C qu'en PHP) la phase d'authentification et j'ai po réussit. De plus le protocol v10 est tres mal decrit sur le net à la diference de MSN, ICQ ...
 
Sinon a ma connaissance Yahoo ne donne pas accès au un formulaire pour poster des msg, ils avait une interface java passé un temp... de tt façon un formulaire me reposerai que le meme probleme...

Reply

Marsh Posté le 14-02-2005 à 19:16:50    

omega2 a écrit :

Au fait, je viens de penser à un truc : un compte YM = un compte Yahoo mail.
De plus, YM prévient quand on recoit un mail dans la boite mail du compte.
Ca serait pas plus simple d'envoyer un mail à l'adresse de la boite mail que d'envoeyr un message YM?


C vrai c une solution mais c po drole...
Immagine T'as ta Y!Messenger de lancer, tu post sur un forum,dès qu'un type post tu recoit po un mail mais un petit message tu l'a direct et de plus se sont des informations qui n'ont pas besoin d'etre stocké (tu garde po tt t notification par email ?)
Je developpe ce script pour le site d'un bar, pour moi il servira a m'informer en temp réel des inscritions ou des visites. Mais je pense qu'il peut exister po mal d'autre application possible.
Pour un meilleur sécu. je passerai par une base de donnée pour identifié les personnes voulant utiliser le script avec pwd et login different de ceux de yahooMessenger. Mais il faut aussi stoker dans la base le pwd de Y!Messenger, avec un algo réversible, j'ai bien vue des truc avec le module mcrypt est ce interessant ?

Reply

Marsh Posté le 14-02-2005 à 19:41:26    

Tu peux assi prendre le probleme par un autre angle.
 
Toi tu as un compte Y!, et tu voudrais recevoir un message lors d'une action precise. Ok, pour cela tu as decide d'implementer le proto de Y! ds ton portail. Or comme tu l'as dit toi meme, ce dernier n'est pas tres documente...
Pourquoi tu ne prendrais pas un proto qui est documente ??
 
Je pense a Jabber. C'est un IM libre, il en existe une miriade de clients.
Ce qui est bien avec Jabber, c'est que certains serveur proposent des "gateways" vers les autres protocoles.
Donc ce que je te conseille c'est de creer un compte jabber pour ton portail. Tu ajoutes la gateway pour Y! et apres il ne te suffit que d'implementer les proto jabber, comme ce dernier est libre, tu trouveras plein de doc dessus.
Tu peux meme t'inspirer sur les tonnes de clients dispos.
 
De plus autre avantage, si Y! decide de changer son protocole, tu n'auras rien a faire, puisque c'est la gateway qui va se metre a jour. tu n'auras meme pas a toucher a ton code :D


Message édité par cerel le 14-02-2005 à 19:42:08
Reply

Marsh Posté le 14-02-2005 à 20:20:54    

Cerel a écrit :


Je pense a Jabber. C'est un IM libre, il en existe une miriade de clients.


Le truc c que j'en é chier pour comprend / codé /compiler le script cgi de Y!Messenger. Mais maintenant cela est fait ! Et de plus sa me ferai chier de tt jeter cela par la fenetre(po de jeux de mot av windows)...
De plus j'ai jeter 2 ou 3 coup d'oeil a des scripts jabber en PHP, ils ont po l'air de supporter le protocol Yahoo...
Et je dois rester sur du Y!Msg, donc on a tjrs le meme pb, comment gerer l'autentification?

Reply

Marsh Posté le 14-02-2005 à 20:30:46    

themadmax a écrit :

De plus j'ai jeter 2 ou 3 coup d'oeil a des scripts jabber en PHP, ils ont po l'air de supporter le protocol Yahoo...

Logique vu que c'est le serveur jabber qui s'occupe de ça. Non?

Reply

Marsh Posté le 15-02-2005 à 00:45:43    

Oui, en effet.
Il suffit d'implement que le code de Jabber. Ensuite c'est le serveur et les "gateways" qui s'occupent d'implementer le code pour les autres protocoles.
 
Par exmemple, j'utilise comme client PSI, ce dernier ne se connecte qu'a jabber. Mais grace au serveur sur lequel je suis, je peux me loger sur msn et icq (j'utilise pas Y!).
 
Donc il suffit d'implement le protocole jabber et c'est bon. Apres c'est le serveur qui s'occupe du reste.

Reply

Marsh Posté le 17-02-2005 à 10:13:30    

Citation :

Persévérance arrive à récompense... :jap:


 
Bon je suis arriver a quelque chose qui marche deja ! pour ceux qui on pas froid au yeux il peuvent tester le cgi par un formulaire html (attention les mot de passe ne sont pas crypté !)
 
http://wifirm.no-ip.org/yahoo/yahoo.html
 
Merci pour ceux qui m'ont aidé. Je continu sur ma lancé et je tiendrai ce forum a jour.
 

Reply

Marsh Posté le 18-02-2005 à 11:38:20    

Voici la premiere version en test pour tout ceux que sa peut interesser!
Merci de donnée tous vos avis. Sa l'air de focntionner pas trop mal meme depuis des hebergeurs gratuit (Free testé)
Je m'explique po trop sur le processus d'authentification (pour la sécurité), mise a part que le mot de passe yahoo messenger ne circule pas sur le reseau.
 
En résumer il suffit de posséder un compte Yahoo messenger, de s'incrire sur le site : http://wifirm.no-ip.org/yahoo/, apres une confirmation auto. par email, on peut rajouter un script PHP dans son site pour envoyé automatiquement des msg  :sol: !
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed