Accès sécurisé > Besoin d'avis

Accès sécurisé > Besoin d'avis - PHP - Programmation

Marsh Posté le 19-07-2005 à 11:23:16    

Bonjour,
 
Actuellement de développe un site en PHP. Celui-ci contiendra une partie privée.
 
Etant donné que je ne sais pas trop comment obtenir une sécurité optimale pour mes pages, j'aurais aimé connaitre vos avis concernant ma méthode :

Code :
  1. <?php
  2. session_start(); // Démarrage session
  3. include_once("includes/config.php" );
  4. include_once("includes/fct.php" );
  5. if(isset($_SESSION["ident_login"]) && isset($_SESSION["ident_pass"]))
  6. {
  7.   $link_ident = connect(HOST, LOGIN, PASS);
  8.   if(!$link_ident)
  9.     echo mysql_error();
  10.   else
  11.   {
  12.     if(!select_db(DATABASE, $link_ident))
  13.       echo mysql_error();
  14.     else
  15.     {
  16.       $req = "SELECT login, pass, session FROM ".$tbl_admins." WHERE login='".$_SESSION['ident_login']."' AND pass='".$_SESSION['ident_pass']."' AND session='".$_GET['sid']."'";
  17.       $sql = requete($req, $link_ident);
  18.       if(!sql)
  19.         echo mysql_error();
  20.       else
  21.       {
  22.        if(mysql_num_rows($sql) == 1)
  23.        {
  24.         // Affichage page HTML
  25.         include("includes/header.html" );
  26.         echo "<!-- DEBUT BODY -->";
  27. ?>
  28. <?php
  29.           echo "<!-- FIN BODY -->";
  30.         include("includes/footer.html" );
  31.        }
  32.       }
  33.     }
  34.   }
  35. }
  36. ?>


 
 
Comment vous aurez pu le remarquer, j'ai un répertoire includes dans lequel je stock des fichiers important comme le "config.php". J'aurais également aimé quel chmod je dois mettre pour éviter toute intrusion dans ce répertoire ???
 
Merci d'avance :)


Message édité par AlphaZone le 19-07-2005 à 11:27:15
Reply

Marsh Posté le 19-07-2005 à 11:23:16   

Reply

Marsh Posté le 19-07-2005 à 12:06:32    

Un .htaccess dans le dit repertoire pour interdire l'acces via http.
PHP ayant acces au systeme de fichiers par le disque et non par http les inclusions se derouleront sans probleme.

Reply

Marsh Posté le 19-07-2005 à 12:07:36    

pis les pass en clair spa cool, un hachage en md5 minimum je dirais :)


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 19-07-2005 à 13:24:02    

plainsofpain a écrit :

pis les pass en clair spa cool, un hachage en md5 minimum je dirais :)


Je ne parle pas de cryptage. J'ai crypté le mot de passe bien avant cette page (Pas fou moa ^^).
 
Je voulais juste savoir si ma méthode était fiable ou pas.

Reply

Marsh Posté le 19-07-2005 à 13:26:00    

Ah ben si c'est déjà crypté alors ... concernant la sureté de ta méthode, je ne suis pas expert ^^'


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 19-07-2005 à 17:54:10    

une petite verification prealable des variables de sessions et surtout de ta variable GET ... ( par definition, verifie toujours la variable GET
 
exemple :  
 

Code :
  1. if(IsSet($_GET['a'])) $a = htmlentities($_GET['a']); else $a = '';


 
du moin c'est ce que je fait pour les variables GET ( je fait pareil sur les variables de SESSION ... ( ca permet aussi de travailler avec une variable plus simple et d'eviter les erreurs undifined ... )
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 19-07-2005 à 21:57:30    

bl@p_psx a écrit :

une petite verification prealable des variables de sessions et surtout de ta variable GET ... ( par definition, verifie toujours la variable GET
 
exemple :  
 

Code :
  1. if(IsSet($_GET['a'])) $a = htmlentities($_GET['a']); else $a = '';


 
du moin c'est ce que je fait pour les variables GET ( je fait pareil sur les variables de SESSION ... ( ca permet aussi de travailler avec une variable plus simple et d'eviter les erreurs undifined ... )
 
@+


 
Je passerais en POST perso, sinon je suis d'avis de faire quand même un htaccess qui est plus sécurisant, mais carrément moins beau au niveau de l'identification..  
Mais sinon ça m'a pas l'air mal :)  
ça va etre un gros site qui risque d'avoir beaucoup de piratage?  
 
 [:magnasuprema]  

Reply

Marsh Posté le 19-07-2005 à 22:11:58    

Merci beaucoup les gars.
 
Non c'est un petit site enfin la partie public. La partie privée se corse un peu ^^

Reply

Marsh Posté le 19-07-2005 à 22:14:15    

AlphaZone a écrit :

Merci beaucoup les gars.
 
Non c'est un petit site enfin la partie public. La partie privée se corse un peu ^^


 
Donc tu doit quand même pas avoir une grosse sécurité, ce que tu à fait est déjà pas mal va..  :whistle:

Reply

Marsh Posté le 20-07-2005 à 00:10:13    

Et puis comme d'hab un coup de mysql_real_escape_string sur les variables de la requête ça fait pas de mal, surtout pour le $_GET['sid'] facilement modifiable.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 20-07-2005 à 00:10:13   

Reply

Marsh Posté le 20-07-2005 à 13:11:37    

sielfried a écrit :

surtout pour le $_GET['sid'] facilement modifiable.


Justement, si un petit malin s'amuse à modifier le PHPSESSID, il se retrouvera sur la page login. Si tu regarde ma requete, je vérifie tout : Login, Pass et le SID.
 
 
Si vous voyez dans mon code, une faille, dite le moi. Merci :)

Reply

Marsh Posté le 20-07-2005 à 13:19:34    

Et s'il se débrouille pour que $_GET['sid'] ressemble à un truc du genre :
 

Code :
  1. ' OR 1=1 LIMIT 1 --


 
?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 20-07-2005 à 13:21:49    

Bah dans l'os http://membres.lycos.fr/angel2k/petrus/petruskahn.gif

Reply

Marsh Posté le 20-07-2005 à 13:31:05    

Bah il nous fait pas un site pour une banque non plus.. Faut déjà en vouloir pour pirater un site perso, je ne m'amuse pas à ça  personnellement... :)

Reply

Marsh Posté le 20-07-2005 à 13:35:57    

Y a bien un neuneu qu'a piraté le site spreadfirefox !
 
Si je sais qui c'est un jour, il passera un sale quart d'heure ! :p


Message édité par plainsofpain le 20-07-2005 à 13:36:27

---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 20-07-2005 à 13:40:15    

lol, c'est vrai j'ai eu un babane qui à pirater mon site lol... Mais lui part contre j'ai trouvé et il à faillit finir chez les flics.. hihi, il recommencera pas de si tot... :)

Reply

Marsh Posté le 20-07-2005 à 14:22:13    

sielfried a écrit :

Et s'il se débrouille pour que $_GET['sid'] ressemble à un truc du genre :
 

Code :
  1. ' OR 1=1 LIMIT 1 --


 
?


Il ferait comment pour modifier cela ? Je suis curieux.
 

micfont999 a écrit :

Bah il nous fait pas un site pour une banque non plus.. Faut déjà en vouloir pour pirater un site perso, je ne m'amuse pas à ça  personnellement... :)


Ce n'est pas un site perso. C'est pour une petite entreprise.

Reply

Marsh Posté le 20-07-2005 à 14:25:48    

oki oki, mais ta déjà pas mal de sécurité.. elle est hyper connue ton entreprise la? elle va engendrée plein de piratage?

Reply

Marsh Posté le 20-07-2005 à 14:26:44    

AlphaZone a écrit :

Il ferait comment pour modifier cela ? Je suis curieux.


Vu que c'est en $_GET, c'est ultra-culcul

Reply

Marsh Posté le 20-07-2005 à 14:30:17    

FlorentG a écrit :

Vu que c'est en $_GET, c'est ultra-culcul


 
Pour toi :)
Explain voir, j'aimerais savoir aussi please, je connais pas cette méthode... Merki d'avance..  :hello:  
 

Reply

Marsh Posté le 20-07-2005 à 14:31:49    

bah suffit d'aller a l'adresse suivante :
_http://sonsite.fr/index.php?sid='%20OR%201=1%20LIMIT%201%20--


Message édité par afbilou le 20-07-2005 à 14:32:05
Reply

Marsh Posté le 20-07-2005 à 14:37:56    

Voilà, tout ce qui est en GET figure dans l'URL [:spamafote]

Reply

Marsh Posté le 20-07-2005 à 14:46:55    

D'une maniere generale tu dois filtrer TOUTES les données ($_GET, $_POST, $_FILE) etc qui sont envoyées par un client.
 
Les expressions regulieres sont tout indiquées pour faire cela.

Reply

Marsh Posté le 20-07-2005 à 14:49:30    

micfont999 a écrit :

oki oki, mais ta déjà pas mal de sécurité.. elle est hyper connue ton entreprise la? elle va engendrée plein de piratage?


Non. C'est une entreprise qui travail dans un rayon de 40km environ. Il n'y a que 2 personnes.
 

afbilou a écrit :

bah suffit d'aller a l'adresse suivante :
_http://sonsite.fr/index.php?sid='%20OR%201=1%20LIMIT%201%20--


Ah ok. Merci.
 
 
J'ai utilisé une fonction proposé sur le site de nexen qui utilise mysql_real_escape_string et cette fois je vais formaté ma requête pour chaque page.

Reply

Marsh Posté le 20-07-2005 à 14:54:56    

J'ai un problème avec mon fichier logout.php
 
J'ai beau détruire la session, j'arrive à accèder aux pages juste en repassant le SID de ma session en GET.
Dites-moi ce que je peux faire, svp.
 
Voici le code :

Code :
  1. <?php
  2. session_start();
  3. $_SESSION = array();
  4. session_destroy();
  5. header("location: index.php" );
  6. ?>

Reply

Marsh Posté le 20-07-2005 à 17:44:22    

ne passe pas le sid en GET, ne le passe pas du tout ... enfin, je dis ca, j'ai rien dis ... :D


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 20-07-2005 à 20:40:45    

bl@p_psx a écrit :

ne passe pas le sid en GET, ne le passe pas du tout ... enfin, je dis ca, j'ai rien dis ... :D


Pourquoi donc ? Il y a des sites qui le font.

Reply

Marsh Posté le 20-07-2005 à 21:30:29    

un petit peu de lecture sur les sessions
http://www.manuelphp.com/php/ref.session.php
 
@+
 
ps: je le fait parceque le SID est recuperable sans le passer en argument et que, je n'aime pas voir le sid dans une url ... mais c'est juste un choix, loin de moi l'idée d'argumenter pour ou contre ...


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 21-07-2005 à 00:33:39    

pourquoi tu peux pas la passer en post,,
??

Reply

Marsh Posté le 21-07-2005 à 07:15:38    

bl@p_psx a écrit :

un petit peu de lecture sur les sessions
http://www.manuelphp.com/php/ref.session.php
 
@+
 
ps: je le fait parceque le SID est recuperable sans le passer en argument et que, je n'aime pas voir le sid dans une url ... mais c'est juste un choix, loin de moi l'idée d'argumenter pour ou contre ...


 
Dans le site que tu m'as passé , j'ai pu lire ceci :

Citation :

Le module de session supporte les deux méthodes. Les cookies sont optimaux, mais comme ils ne sont pas sûrs (tous les internautes ne les acceptent pas), ils ne sont pas fiables. La seconde méthode place l'identifiant de session directement dans les URL.


 
Je dois en déduire quoi exactement ?
Quelle méthode serait la mieu adaptée ?
 
 
Sinon j'voulais vous remercier pour votre aide, c'est super sympas :)

Reply

Marsh Posté le 21-07-2005 à 10:31:27    

La meilleure méthode, c'est de passer par SSL :D

Reply

Marsh Posté le 21-07-2005 à 11:44:43    

ce que je veux dire c'est qu'il n'y a pas besoin de passer le SID dans l'url pour recuperer les variables de sessions ...
 
@+
 
ps: pour le SSL  :jap:


Message édité par bl@p_psx le 21-07-2005 à 11:45:24

---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 21-07-2005 à 13:41:13    

Ok.
 
Merci encore pour vos aides!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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