Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2006, 21h50   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
Envoyer un message via ICQ à sdebois Envoyer un message via MSN à sdebois Envoyer un message via Skype™ à sdebois
Par défaut [Cookies] Récupérer les USERNAME / PASSWORD sous Windows (2000/XP)

"Quoi ? Mais il est fou ce type ?!!"

Eh oui, j'entends déjà crier les mentors ... hèhè.
Bon un mot d'explication à présent.

Je travail dans une société qui héberge son propre Intranet (que j'administre du mieux possible) sous LAMP (SuSe / Apache 2 / PHP 4 / ...).
Environnement Citrix / Powerfuse pour tous les employés. Windows pour tout le monde avec IE actuellement.

Travaillant en interne explusivement, et sachant que la plupart des utilisateurs ont déjà pas mal de LOGIN à retenir à tout va, un souhait était donc de ne pas demander d'authentification supplémentaire pour se faire authentifier sur l'intranet.
Ceci faisant de plus double-emploi avec le LOGIN de l'environnement réseau Windows (avec ActiveDirectory) déjà mis en place. Chaque utilisateur possédant donc déjà un LOGIN pour se faire authentifier sur le réseau, il était donc plus simple de détecter les infos de l'utilisateur et de l'authentifier automatiquement.

Pour cela j'ai trouvé le moyen de le faire à travers JavaScript et un appel ActiveX de Windows qui me donne bien les infos (USERNAME dans un premier temps) que je stocke alors dans un cookie qui est placé dans la session sécurisée de l'utilisateur (pour diverses raisons entre autres).

Bref ... tout ça est bien joli et fonctionne MAIS uniquement pour Internet Explorer (ActiveX ...) => EXIT donc notre génialissime Firefox (ou autre browser) !
ActiveX et Firefox n'étant par définition pas compatibles.

J'ai bien cherché sur le net après des modules faisant fonctionner les ActiveX sous Firefox mais rien de concluant jusqu'à présent.

Et donc, quelqu'un aurait-il une suggestion intéressante à faire pour m'éviter d'être forcé d'utiliser IE (et donc mon ActiveX en question) pour interroger Windows afin qu'il me donne les infos souhaitées sur l'utilisateur loggé ?

JAVA ? Autre langage ? Module Firefox spécial ?

Merci d'avoir lu toute ma tartine ...
Et merci pour votre aide.



Steph.
sdebois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 22h05   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Tu voudrais, du côté serveur, récupérer des infos qui concernent directement le client ? Il me semble que c'est justement la raison qui a poussé la team Mozilla à faire un Firefox qui ne gère pas les ActiveX...

Peut-être peux-tu écrire un script bat ou vbscript, que ton serveur ActiveDirectory demandera à Windows de lancer à l'ouverture de session, qui écrira tous les cookies comme il faut ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 22h44   #3
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
Envoyer un message via ICQ à sdebois Envoyer un message via MSN à sdebois Envoyer un message via Skype™ à sdebois
Oui je confirme :
Du côté serveur, la page se charge et lors de la première visite de l'utilisateur l'ActiveX (développé en JavaScript) suivant :
Code :
1
2
3
4
5
 
...
var WshNetwork = new ActiveXObject("WScript.Network");
var user = WshNetwork.UserName;
...
est exécuté sur le client et lui demande les infos souhaitées (de manière transparente car tous les IE ont été configuré en TRUSTED pour le serveur Intranet, bien entendu).

Je comprends très bien les enjeux autour de la sécurité en effet. Mais ici, je suis dans un contexte bien précis et où la sécurité existe déjà à d'autres niveaux.
La raison qui me pousse à chercher une solution alternative est simple : compatibilité avec d'autres browser afin d'éviter d'être obligé d'utiliser impérativement IE.
sdebois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 22h47   #4
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Salut,

J'ai été confronté au même problème.
Tenant compte de ce que c'est un intranet et de ce que le serveur n'est pas visible de l'extérieur.
J'ai fait placer sur chaque ordinateur une icone qui contient

Citation:
"C:\Program Files\mozilla.org\Mozilla\mozilla.exe" 10.0.0.120/index.php?u=%USERNAME%&c=%COMPUTERNAME%&d=%USERDOMAIN%
Je vérifie le nom, la correspondance avec la machine et le domaine et je redirige vers la page suivante.

Ca vaut ce que ça vaut, mais ça marche. Ca oblige l'utilisateur à se connecter de sa machine et uniquement de sa machine.
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 22h55   #5
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
Envoyer un message via ICQ à sdebois Envoyer un message via MSN à sdebois Envoyer un message via Skype™ à sdebois
Astuce à retenir de fait :o
L'idée du VBScript est aussi à cogiter ...

Voilà qui ouvre une petite brèche de solution à mon souci

Z'etes cool les gars de m'avoir répondu si vite par ailleurs !

Impressionant ce site, c'est mon premier POST ...

Steph.
sdebois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 23h24   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Je te prie de prendre une autre note, au passage : nous sommes ici dans le forum PHP.
PHP ne peut pas récupérer directement cette info, c'est ce que j'essayais de souligner dans mon premier message et c'est visiblement quelque chose que tu as compris (puisque tu passes par un contrôle ActiveX développé en JS).

J'en viens au fait : tu pourrais poser la même question dans un forum plus approprié (relatif spécifiquement à Windows ?), tu aurais certainement des réponses plus viables.

Autre piste : utiliser l'IP du poste client ? Pour le coup, PHP saurait le faire.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 00h37   #7
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
je recupere l'ip
exec("nbstat -a")

puis j'analyse le string recupéré ... si qqn a mieux ;-)
__________________
Le but de tout developpeur OO est de devenir une référence.
Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
Aider <> Faire a la place de!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 04h05   #8
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
non pas mieux mais j'ajoute qu'il faut utiliser nbtstat non nbstat et l'adresse ip récupéré comme suit:
Code :
1
2
$adresse = $_SERVER['REMOTE_ADDR'];
exec("nbtstat -a ".$adresse);
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 08h33   #9
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Bonjour,

Avec nbtstat on ne récupère pas le nom de l'utilisateur.
De plus, il faut que le serveur tourne sous Windows.
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 09h19   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Je me disais que peut-être tu avais déjà mappé ton réseau en fonction des IP et des pseudos, ou bien que tu pourrais le faire.
Évidemment, tu n'auras pas le mot de passe avec cette méthode (à distance).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 13h27   #11
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
Envoyer un message via ICQ à sdebois Envoyer un message via MSN à sdebois Envoyer un message via Skype™ à sdebois
Oui, je sais pour le choix du forum j'ai été entre deux feux, il est vrai que c'est Windows que j'interroge, mais comme je développe sous PHP, je me suis basé sur la source d'où part le code.

Le choix du forum n'est pas toujours évident, car on développe souvent avec plusieurs langages. Dans mon cas ce qui intervient c'est : Linux, PHP, MySQL, JavaScript, ActiveX, Windows, ... et donc c'est vrai que les sujets sont du coup assez vastes

Si on pouvait avoir un principe de "multi catégories" pour une même question lorsque l'on parle d'un sujet (comme les libellés GMAIL, ou encore Firebird, ...) ça serait vachement sympa.

Je ne peux pas me baser sur la récupération de l'IP car nous avons des serveurs Citrix où les utilisateurs sont authentifiés par groupe de +/- 30 utilisateurs par serveur et donc l'IP vue par le "REMOTE_ADDR" est l'adresse du serveur et non pas celle d'un seul et unique USER.

Mais en attendant, je vais déjà tenter de travailler à mon souci.
Merci pour vos suggestions et votre aide.

Steph.
sdebois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h27.


 
 
 
 
Partenaires

Hébergement Web