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 28/07/2011, 15h37   #1
Membre confirmé
 
Avatar de Nicopilami
 
Ingénieur sécurité
Inscription : janvier 2009
Messages : 265
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : janvier 2009
Messages : 265
Points : 207
Points : 207
Par défaut impersonation / run as ?

Bonjour à tous
je cherche à faire une impersonation (un runas) dans mon code, en fonction de la personne qui est loguée sur la page.

En effet, par défaut le code de l'utilisateur se déroule avec les droits du serveur web Apache, mais je souhaiterais ici qu'il prenne les droits de la personne connectée au serveur, dont j'ai l'identifiant et le mot de passe.

Comment faire ? Est-ce possible ?
(c'est opur se loguer et faire des actions sur le serveur, comme des mkdir et autres fonctions d'admin...)

bye
Nico
__________________
Citation:
si ton travail est difficile et tes résultats sont minces
n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.
Nicopilami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 15h40   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 775
Points : 2 335
Points : 2 335
Bonjour,

Il y a une solution que j'avais utilisé lors de mon BTS : tu rajoutes un champ dans ta base de données avec différentes valeurs ( par exemple 1 pour user, 2 pour admin ) et sur tes pages, en plus de récupérer login/mot de passe tu récupères ce champ, et tu affiches ce que tu veux en fonction de sa valeur.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 15h43   #3
Membre confirmé
 
Avatar de Nicopilami
 
Ingénieur sécurité
Inscription : janvier 2009
Messages : 265
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : janvier 2009
Messages : 265
Points : 207
Points : 207
Hello

merci pour la réponse, mais ce n'est pas ce que je cherche.

mon problème est une question de droit pour effectuer des actions sur le serveur et eviter les "action denied" quand les actions en questo nécessitent des droits d'admin (root).

d'autres suggestions ?

bye
Nico
__________________
Citation:
si ton travail est difficile et tes résultats sont minces
n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.
Nicopilami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 08h22   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
C'est forcement Apache qui va exécuter les actions. Sinon faudrait redémarrer le serveur web à chaque connexion avec un nouvel user, t'imagines pas le bordel ?

Faut partir sur ce que propose FirePrawn, couplé à des appels système pour obtenir les droits de l'utilisateur en question avant d'exécuter l'action ça doit être possible, bien qu'un poil chiant.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 08h40   #5
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 76
Points : 161
Points : 161
Citation:
Envoyé par Nicopilami Voir le message
d'autres suggestions ?
Bonjour,

ce que vous essayez de faire est éminemment dangereux du point de vue de la sécurité, mais maintenant si vous savez minimiser les risques vous pourriez essayer la solution suivante (sous linux/unix, parce que sous windows, la solution ne fonctionnera pas) :
- donner un shell au user apache (qui normalement ne devrait pas en avoir)
- inscrire le user apache dans la liste des sudoers
- lancer vos commandes systèmes via la fonction exec de PHP en construisant vos actions avec la commande sudo du système sous-jacent (non testé, juste une idée):
Code :
1
2
3
4
5
<?php
$user = 'user'; // utilisateur que vous avez identifié dans votre application
$cmd = 'sudo -u '.$user.' whoami';
echo exec($cmd);
?>
je n'ai pas testé cette solution, mais il me semble qu'elle devrait fonctionner (au delta des points de configuration que j'ai certainement oublié).

HTH.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 15h37   #6
Membre confirmé
 
Avatar de Nicopilami
 
Ingénieur sécurité
Inscription : janvier 2009
Messages : 265
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : janvier 2009
Messages : 265
Points : 207
Points : 207
Citation:
Envoyé par Agnello Fabrice Voir le message
Bonjour,

ce que vous essayez de faire est éminemment dangereux du point de vue de la sécurité, mais maintenant si vous savez minimiser les risques vous pourriez essayer la solution suivante
Je suis conscient de ce problème de sécurité et j'ai normalement mis en place un système d'authentification efficace (en tout cas j'espère), en utilisant le SDK de mon serveur (fonctions d'authent "built in", donc pas du bidouillage).

J'ai essayé d'utiliser AjaxTerm mais je "subis" de gros temps de latence que je ne souhaiterais pas avoir.

Citation:
Envoyé par Agnello Fabrice Voir le message
(sous linux/unix, parce que sous windows, la solution ne fonctionnera pas) :
Le serveur est sous Unix

Citation:
Envoyé par Agnello Fabrice Voir le message
- donner un shell au user apache (qui normalement ne devrait pas en avoir)
- inscrire le user apache dans la liste des sudoers
euh... comment faire cela ?
(vous l'aurez compris, je suis novice en linux)

Citation:
Envoyé par Agnello Fabrice Voir le message
- lancer vos commandes systèmes via la fonction exec de PHP en construisant vos actions avec la commande sudo du système sous-jacent (non testé, juste une idée):
Code :
1
2
3
4
5
<?php
$user = 'user'; // utilisateur que vous avez identifié dans votre application
$cmd = 'sudo -u '.$user.' whoami';
echo exec($cmd);
?>
c'est ce que je pensais faire.

Citation:
Envoyé par Agnello Fabrice Voir le message
je n'ai pas testé cette solution, mais il me semble qu'elle devrait fonctionner (au delta des points de configuration que j'ai certainement oublié).
HTH.
Merci, je testerai ca ce soir

bye
Nicolas
__________________
Citation:
si ton travail est difficile et tes résultats sont minces
n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.
Nicopilami est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h59.


 
 
 
 
Partenaires

Hébergement Web