Application php

Résolu
aymen12 Messages postés 3 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 17 mai 2009 - 15 mai 2009 à 15:25
aymen12 Messages postés 3 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 17 mai 2009 - 17 mai 2009 à 12:37
on me demande de faire une application php dans laquelle  je dois tenire compte de controle de validité des entrée cad au niveau de l'authentification par login et pass je doi eviter les injection sql. aussi de la mise en place d'un formulaire ne presentant pas des failles car sa va etre une application mise dans un service web au niveau d'un intranet .

5 réponses

neo_baou12 Messages postés 8 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 1 juillet 2009
15 mai 2009 à 15:30
il faut utiliser la fonction "my_sql_real_escape" pour les données récupérées du formulaire avant de leur utilisation dans une requete SQL;

pour afficher des données saisies par un utilisateurs, utilise la fonction "htmlenteties" ou "htmlspecialchars"

j'espère que ça va t'aider dans ton travail.
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 mai 2009 à 08:38
Salut,

Utilise de préférence mysql_real_escape_string à la place de addslashes.
Les injections SQL ne sont qu'une partie des failles qu'il peux y avoir dans un script. Il considérer l'appli dans son ensemble, pas sur 2/3 lignes.
Ta requête par exemple, même "blindée", ne sert à rien si tu autorises des mots de passe style 'toto', 'azerty', etc ... en 5 minutes l'identification est crackée.
Il n'est pas possible de lister tous les pbs qu'il peut y avoir.
Il faudrait que tu fournisses plus de code, voir mettre en ligne une version test.

Cordialement,

Kohntark -
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 mai 2009 à 18:09
Surtout ne te donne pas la peine de dire bonjour ni merci hein !
On te demande ? => alors bosse

Il est impossible de t'aider, sinon ça revient à faire ton code, hors, comme tu le sais (règlement) ce n'est pas le but ici.
Alors fourni du code et nous tenterons de déceler les risques de sécurité potentiels.

Kohntark -
0
aymen12 Messages postés 3 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 17 mai 2009
16 mai 2009 à 14:02
bonjour!!!
dsl Mr kohentark!!!
en fait le but c de fair un script d'authentification qui ne presente pas de faille!!!
j'ai utilisé la fonction addslashes pour eviter les injection sql au niveau de la requete!!
"$sql = 'SELECT count(*) FROM administrateur WHERE login="'.addslashes($login).'" AND password="'.$password.'"';"

j voudrai savoir est ce que ya seulment les injection qu'il faut traiter pr avoir une application fiable???
merci pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aymen12 Messages postés 3 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 17 mai 2009
17 mai 2009 à 12:37
merci bien pr votre aide!!
voila le code php qui verifie l'identé d'1 administrateur lors de la connexion!!
j'aimerai bien savoir si ce code présente encore de faille ou nn!!!
<?php

    require "connect.php";
   
$login = mysql_real_escape_string $_POST["login"]; //récupération des valeurs de admin.php
$password =($_POST["mp"];
$mp=md5($password);

 // il faut initialiser la session 

    session_start();
 if (($login=="")||($password==""))
 {

   echo '

';
   echo '';
   echo '

Vous avez oublié de renter le(s) champs suivant(s) :';
   if ($login=="")
   echo '
login';
   if ($password=="")
   echo '
Mot de passe';
   echo '
';
   
   echo '<form action="admin.php" method="post">';
   echo '
';
   echo '   ';
   echo '</form>';
   echo '
';
   session_destroy();
 }
 else {
  

$sql = 'SELECT count(*) FROM administrateur WHERE login="'.($login).'" AND password="'.md5.mysql_escape_string($mp).'"';

$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
  

 
   echo"
";
   if ($data[0] == 1) {

include('extrait.php'); // aller a la page du formulaire :possibilité d'accés
exit();
    }
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login,soit dans son mot de passe

elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes
identifiants de connexion.';
}

//else {
//$erreur = 'Au moins un des champs est vide.';
//}

if (isset($erreur))
{echo '',$erreur;
 echo '        </script>';
     }
  
   
 }
?>
0
Rejoignez-nous