Verif de sécurité pour mes includes et mes requetes SQL !

Verif de sécurité pour mes includes et mes requetes SQL ! - PHP - Programmation

Marsh Posté le 11-11-2008 à 18:13:44    

bonjour je reviens vous demander votre aide pour savoir si mon site est bien sécurisé !
 
Voilà j'utilise les includes de type :  
 

Code :
  1. http://mon.site.com/index.php?page=news

qui inclura la page news.php
 
Et j'appel ma BDD via :
 

Code :
  1. require ($_SERVER["DOCUMENT_ROOT"].'includes/config.inc.php');
  2.                             mysql_connect($host, $username, $password);
  3.                             mysql_select_db($bdd_name);


 
Et je fait donc passer les variables via URL
 
 
 
Voici ma page index.php :
 

Code :
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5.     <div id="liste">
  6.  
  7.     <?php
  8.              
  9.               require ($_SERVER["DOCUMENT_ROOT"].'includes/config.inc.php');
  10.                             mysql_connect($host, $username, $password);
  11.                             mysql_select_db($bdd_name);
  12.      $query="SELECT * FROM liste ORDER BY id DESC";
  13.      $result=mysql_query($query);
  14.      while ($tableau_news=mysql_fetch_array($result)) {
  15.       $id=htmlspecialchars($tableau_news["id"]);
  16.       $titre=htmlspecialchars($tableau_news["titre"]);
  17.      ?>
  18.          <!-- repeat //-->
  19.          <a href="http://mon.site.com/index.php?page=<?php echo($titre); ?>"><?php echo($titre); ?></a>
  20.                             <!-- fin repeat //-->
  21.      <?php
  22.          // Ce qui donnerais par exemple comme lien :
  23.          //  news ($titre)   (dont le lien serait :  http://mon.site.com/index.php?page=news )
  24.      } // fin while
  25.      mysql_close();
  26.      ?>
  27.  
  28.     </div>
  29.  
  30.        
  31.        
  32.        
  33.        
  34.         <div id="include">
  35.  <?php
  36.  //include de la page en question via l'url :  http://mon.site.com/index.php?page=news
  37.   if ($_GET['page'] == "news" )
  38.    {
  39.     include("news.php" );
  40.    }
  41.   if ($_GET['page'] == "concert" )
  42.    {
  43.     include("contact.php" );
  44.    }
  45.      ?>   
  46.  
  47.  </div>
  48. </body>
  49. </html>


 
 
Si vous pouvez vérifier  aussi mon code sql pour voir si il n'y a pas de failles possible ça serait super !
 
Merci d'avance !


Message édité par skog le 11-11-2008 à 18:23:46
Reply

Marsh Posté le 11-11-2008 à 18:13:44   

Reply

Marsh Posté le 11-11-2008 à 18:23:27    

je ne vois pas de soucis de sécurité.
Si tu échappes correctement tes données (pour l'affichage et l'enregistrement) et que tu vérifies que l'inclusion de tes fichiers est correcte tu n'as pas de soucis.

Reply

Marsh Posté le 11-11-2008 à 18:24:49    

ok il n'y a aucun moyen d'insérer un lien d'un autre site dans mes includes ? où d'injecter du code sql ?

Reply

Marsh Posté le 11-11-2008 à 18:29:17    

Non.
Attention : pour que l'on puisse injecter du code SQL dans ta requête il faudrait qu'elle soit construite à partir de données dépendantes du client.

Reply

Marsh Posté le 11-11-2008 à 18:36:52    

ok donc si je garde mon code comme ca, ma page, ma bdd et mon serveur seront sécurisé ?
 
Car pour l'affichage j'ai pas echappé mes données ?
 
(si on imagine que j'ai que cette page sur mon serveur + les pages à inclure^^)
 
dsl mais je suis un peu parano ^^

Reply

Marsh Posté le 11-11-2008 à 18:42:47    

Regarde :
 

Code :
  1. $query="SELECT * FROM liste ORDER BY id DESC";


 
Comment veux tu que l'on injecte du code SQL ?
On ne peut pas car il n'y a aucune donnée HTTP transmissible par le client dans cette requête.
Si c'était le cas tu ferais par exemple :
 

Code :
  1. $id = (int) $_GET['id'];
  2. $user = mysql_real_escape_string($_POST['user']);
  3. $pwd = mysql_real_escape_string($_COOKIE['pwd']);
  4. $query="SELECT * FROM id=$id AND user='$user' AND pwd='$pwd' ORDER BY id DESC";


 
(requete bidon)
 
pour tes includes, pour qu'ils soient vulnérables il faudrait que tu inclus sans vérification ce qui est passé en paramètre :
 

Code :
  1. include($_GET['page']);

Reply

Marsh Posté le 11-11-2008 à 18:57:56    

oké merci  :D  
 
je suis rassuré !

Reply

Sujets relatifs:

Leave a Replay

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