Comment protéger le compte administrateur ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment protéger le compte administrateur ?

par Tohru222 » 19 janv. 2009, 15:45

A merci !!
Enfin j'ai compris !!

fo dire, c pas évident.

merci.

par zeus » 19 janv. 2009, 15:40

parce que tu dois développer en local sur une plateforme Windows (qui accepte \ et /, mais préfère \) alors que ton serveur doit être sous Unix, qui n'accepte que /

par Tohru222 » 19 janv. 2009, 15:37

j'ai trouvé !!!!

mais j'ai pas compris pkoi.

j'vais mis : include('adminJ\tabAdmin.php');
et falais mettre : include('adminJ/tabAdmin.php');

mais pkoi la première version marchait en local je ne sais pas.
et pareil, les images sont appellées avec le "dossier\nomImage.png" et même sur l'hébergeur, comme ça ça marche.... à n'y rien comprendre.....

par Tohru222 » 19 janv. 2009, 15:27

j'ai oublié de rapeller mon code:

Code : Tout sélectionner

$tab_admin = array(); include('dosAdmin\tableauAdmin.php'); if(in_array($_POST['txtmail'],$tab_admin,true) ) { $_SESSION['admin'] = 1 ; } else { $_SESSION['admin'] = 0 ; }

par Tohru222 » 19 janv. 2009, 15:23

heu.... AB j'ai encore besoin de ton aide !!!

je viens enfin de pouvoir mettre mon site sur internet.

je l'ai mis sur free. Et là, alors que tout marche bien en local, et ben ça marche pas.

il me met :
Warning: main(dosAdmin\tableauAdmin.php) [function.main]: failed to open stream: No such file or directory in /mnt/102/sdb/a/d/avimag/FenIdentification.php on line 116

Warning: main() [function.include]: Failed opening 'dosAdmin\tableauAdmin.php' for inclusion (include_path='/mnt/102/sdb/a/d/.../include:.:/usr/php4/lib/php') in /mnt/102/sdb/a/d/avimag/FenIdentification.php on line 116


pourtant, sur "l'hébergeur", j'ai bien mis à la racine, le dossier "dosAdmin" et dedans le fichier ".htaccess" et le fichier "tableauAdmin.php" qui contient les mail des admin autorisé. je ne comprend pas.....

par Tohru222 » 09 janv. 2009, 22:23

merci pour tout.

oui en effet, c bien compliqué.

Je vais donc laisser comme ça. Je modifierai mon tableau hors internet, directement sur ma page tabAdmin.php.

Merci encore pour tout, de ta patience et de tes réponses clairs (avec code en prime) ça m'a énormément aider, car j'avais beau chercher je ne trouvais pas.

bonne soirée
Tohru

par AB » 09 janv. 2009, 17:14

Ben tu n'as pas à faire afficher le tableau $tab_admin dans ta page GestAdmin.php, il te suffit juste de te rendre dans ta page LesAdmins.php et de modifier le tableau.

Maintenant si tu veux pouvoir tout faire depuis le web ça va te demander un peu plus de code :
- Faire un formulaire pour lister les lignes de ton tableau et pouvoir en ajouter ou en supprimer
- Sérialiser serialize() ton tableau et l'enregistrer dans la page tableau_admin.php avec file_put_contents() , et employer les fonctions inverses pour lire le fichier file_get_contents() et extraire le tableau avec unserialize()

Et si tu veux pouvoir être le seul parmi les admin à avoir accès à ta page GestAdmin.php, en considérant que tu t'inscris avec le pseudo Tohru222, ta page pourra être protégée en faisant
session_start(); 
if(!(isset($_SESSION['admin']) && $_SESSION['admin'] == 'Tohru222')) {die('Page réservée à l\'administrateur principal');}
Mais bon peut-être serait-il plus simple dans un premier temps de simplement modifier directement le tableau $tab_admin dans ta page LesAdmins.php ce qui t'éviterait d'avoir à créer la page GestAdmin.php que tu pourras toujours faire par la suite.

par Tohru222 » 09 janv. 2009, 16:25

merci,

j'ai tout refait, ça marche bien.

par conter, du coup j'essai en tant qu'admin de pvoir gérer le tableau des admins.

d'en supprimer un par exemple. mais vu que le tableau n'est pas sur la même page.php, heu... là ça devient compliquer.
J'm'exprime peut être pas très bien:

je suis la la page GestAdmin.php
Sur cette page, j'arrive à afficher le tableau ($tab_admin) contenu dans LesAdmins.php (c'est la page "sécurisé" dont tu m'as fait le code.)

Toujorus sur GestAdmin.php, j've supprimer un admin. si je fait :
unset($tab_admin[$maligne]);, ça ne marche aps vu ke le tableau n'est pas sur la page GestAdmin.php mais sur LesAdmins.php

pas facile de commander à distance un tableau

par AB » 09 janv. 2009, 15:51

est-ce obligatoire de faire la reconnaisannce de caractère comme le font quasiment tous les sites maintenant ? (la petite image où l'on doit recopier les caractère que l'on voit) ?

merci encore pr tout
Ce n'est en aucun cas obligatoire, c'est pour éviter les inscriptions abusives de robots spam. A ta place je commencerais sans ce mécanisme. Tu verras bien à l'usage et si tu as beaucoup d'inscriptions illicites dans un but de spam il sera toujours temps d'implémenter ce mécanisme de contrôle par la suite - qui contrôle que c'est bien un humain qui s'inscrit car les robots ne savent (pas encore) recopier ces caractères.

par Tohru222 » 09 janv. 2009, 14:53

impec t un crack !!!!!

c super ! en effet, sur ma page admin je n'avais aps pensé à testé la variable de session pour voir si c biern un admin ou non !!
super

je profite de ton savoir pour te poser un petite question tjrs en matière de sécurité pr un site.

à l'inscription, le site envoi un mail à la personne. Sur ce mail, il y a un lien qui rend actif son compte.
c un genre de forum que je fais. pr poster des messages, la personne doit être inscrite, son compte doit être validé et elle doit être identifiée.

est-ce obligatoire de faire la reconnaisannce de caractère comme le font quasiment tous les sites maintenant ? (la petite image où l'on doit recopier les caractère que l'on voit) ?

merci encore pr tout

par AB » 09 janv. 2009, 02:58

ah heu... j'viens de me rendre compte qu'en faisant celà si par hasard kk1 de mal-intentionné venait à connaitre le nom d'une page réservé à l'administrateur, et qu'il la tape directement dans l'adresse, il peut y accéder.

c possible qu'une personne puisse connaitre le nom des pages réservés à l'administrateur ?

car dans ce cas c toutes la pages réservés à l'administrateur que je dois mettre dans le .htaccess. et dans ce cas je peux me passer de .htpasswd ?

merci
Ben c'est que tu as fais une erreur quelque part.
Si dans ta page d'identification tu as fait
//...
if(in_array($login, $tab_admin, true)) 
{
session_start();
$_SESSION['admin'] = $login;
} 
else 
{
session_start();
$_SESSION['visiteur'] = $login;
}
il suffit de protéger tes pages administrateur en incluant ces lignes au début de chacune d'entre elles
session_start(); 
if(!isset($_SESSION['admin'])) {die('Vous devez être enregistré pour accéder à cette partie du site');} 
et tes pages visiteurs authentifiés par
session_start(); 
if(!isset($_SESSION['visiteur'])) {die('Vous devez être enregistré pour accéder à cette partie du site');} 
T'as pas dû lire le tuto que j'ai mentionné plus haut dans son entier :wink:

par dogmongo » 08 janv. 2009, 23:51

Bonsoir

fais une page maitresse qui controle les admins , et à partir de celle-ci fais appel au autres par un include , en placant un test sur la variable session dans chacune d'elle.
variable session qui sera configuré sur la page maitresse
:wink:

par Tohru222 » 08 janv. 2009, 23:21

ah heu... j'viens de me rendre compte qu'en faisant celà si par hasard kk1 de mal-intentionné venait à connaitre le nom d'une page réservé à l'administrateur, et qu'il la tape directement dans l'adresse, il peut y accéder.

c possible qu'une personne puisse connaitre le nom des pages réservés à l'administrateur ?

car dans ce cas c toutes la pages réservés à l'administrateur que je dois mettre dans le .htaccess. et dans ce cas je peux me passer de .htpasswd ?

merci

par Tohru222 » 08 janv. 2009, 23:11

Merci beaucoup AB de ton aide.

oui j'utilise bien des variable s de session une fois l'utilisateur identifié.

ok, donc dans mon .htaccess,
j'ecris juste cette ligne:
deny from all

dans mon dossier que je prrotège, j'ai fais comme tu m'as dit. j'y ai mis le .htaccess et le fichier.php contenant le tableau des login autorisé à l'administration

merci encore de ton aide,

julie

par AB » 08 janv. 2009, 23:02

Puisque tu fais une authentification par bdd je suppose que tu protèges tes pages avec des variables de session que tu déclares à la suite de l'authentification (le principe est ici) donc par besoin de .htpasswd.
Donc tu fais un répertoire en y intégrant un fichier .htaccess contenant uniquement la mention deny from all, pour protéger les fichiers inclus dans ce prépertoire d'un accès extérieur. Et dans ce même répertoire tu mets ton fichier tableau_admin.php (pour reprendre mon exemple).