Connection sécurisée?

Connection sécurisée? - PHP - Programmation

Marsh Posté le 27-12-2005 à 10:18:40    

Salut les geeks :p  
 
me voila de retour avec mon problème de connection sécurisée.
 
j'ai pas mal avancé depuis la dernière fois voici ma page de login : (secretdb.php)
 

Code :
  1. <?php
  2. if (!isset($_POST['name'])&&!isset($_POST['password']))
  3. {
  4.     // Les visiteurs doivent entrer un password
  5. ?>
  6. <html>
  7.    <head> <p align="center"><img src="logo.jpg" width="408" height="96" /></p>
  8.       <title>
  9.          Merci de vous enregistrer
  10.       </title>
  11.      
  12.    </head>
  13.    <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
  14.     <h1>Le contenu de ce site n'est accessible qu'après enregistrement de votre part.<h1>
  15.     <form action="logclient.php" method="post">
  16.     <table border="1">
  17.     <tr>
  18.       <th> Login </th>
  19.       <td> <input name="name" type=text> </td>
  20.     </tr>
  21.     <tr>
  22.       <th> Password </th>
  23.       <td> <input name="password" type=password> </td>
  24.     </tr>
  25.     <tr>
  26.       <td colspan="2" align="center">
  27.         <input type="submit" value="Log In">
  28.       </td>
  29.     </tr>
  30.     </table>
  31.     </form>
  32.    </body>
  33. </html>
  34. <?php
  35.   }
  36.   else
  37. ?>


 
la page qui vérifie le login et le cas échéant permet de retourner sur la page de login: (logclient.php)
 

Code :
  1. <?
  2.    require_once('Connections/connexiondream.php');
  3.    mysql_select_db($database_connexiondream, $connexiondream);
  4.    session_start();
  5.    $name = $_POST[ 'name' ];
  6.    $password = $_POST[ 'password' ];
  7.    $sql = "select * from autorized_user where name='$name' and password='$password'";
  8.    $res = mysql_query($sql);
  9.    $nb = mysql_numrows($res);
  10.    if($nb!=0) {
  11.      $row = mysql_fetch_object($res);
  12.   $_SESSION['name'] = $row->name;
  13.   $_SESSION['password'] = $row->password;
  14.   $_SESSION['logclient_ok'] = "oui";
  15.     
  16.  header("location:index1.php" );
  17.    }
  18.    else {
  19.   $_SESSION['name'] = "";
  20.   $_SESSION['password'] = "";
  21.   $_SESSION['logclient_ok'] = "non";
  22.  
  23. ?>
  24. <html>
  25. <head><p align="center"><img src="logo.jpg" width="408" height="96" /></p>
  26. <title>Login érroné</title>
  27. <link rel="stylesheet" type="text/css" href="inclusion/style.css">
  28. </head>
  29. <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
  30.   <center>
  31.   <table border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff" width="737" height="100%">
  32.       <tr>
  33.       <td height="100%" align="center" valign="middle">
  34.          <form name="monform" method="post" action="secretdb.php">
  35.          <p><font color="#074A75"><b>Login ou Mot de Passe incorrect !</b></font></p>
  36.          <p><input type="submit" value="Retour"></p>
  37.          </form>
  38.       </td>
  39.    </tr>
  40.   </table>
  41.   </center>
  42. </div>
  43. </body>
  44. </html>
  45. <? } ?>


 
et le .php avec les identifiants/password admin, dans un dossier pour en préserver le code (est ce que c'est une bonne méthode aussi?): (connexiondream.php)
 

Code :
  1. <?php
  2. # FileName="Connection_php_mysql.htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname_connexiondream = "localhost";
  6. $database_connexiondream = "auth";
  7. $username_connexiondream = "root";
  8. $password_connexiondream = "test";
  9. $connexiondream = mysql_connect($hostname_connexiondream, $username_connexiondream, $password_connexiondream) or trigger_error(mysql_error(),E_USER_ERROR);
  10. ?>


 
voila donc tout semble marcher comme sur des roulettes seulement.. quand le login/mdp est bon.. l'utilisateur reste sur la page de login..  
 
je voudrais faire un lien de la page de login vers un index du site par exemple avec les différents menus accessibles à l'utilisateur loggé.
mais je ne sais pas comment faire.. implémenter un header.. mais qu'est ce qui empeche l'utilisateur mal intentioné de se connecté directement à l'index avec le menu sans passer par le login en recopiant simplement l'url? :??:  
 
merci d'apporter des réponses à mes interrogations :jap:


Message édité par hpenhp le 28-12-2005 à 13:56:22
Reply

Marsh Posté le 27-12-2005 à 10:18:40   

Reply

Marsh Posté le 27-12-2005 à 11:53:52    

Bein dans toutes les pages du site il faut regarder dans une variable de session si le visiteur est bien passé par la case identification et sinon le balancer sur la page de login.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 27-12-2005 à 13:52:17    

Ricco a écrit :

Bein dans toutes les pages du site il faut regarder dans une variable de session si le visiteur est bien passé par la case identification et sinon le balancer sur la page de login.


 
en pratique ca donne quoi? :D  
 
j'ai une bd nommée auth, avec pour table ;autorized_user; composée des champs : user_id , name et password.
 
user_id est en autoincrement
 
je peux me servir d'user_id pour identifier l'utilisateur? (c'est le but je sais mais j'ai pas encore tout bien saisi ;) )
 
merci :jap:


Message édité par hpenhp le 27-12-2005 à 13:53:21
Reply

Marsh Posté le 27-12-2005 à 14:43:44    

... J'avais pas lu le script que ta pompé ...  
 
Vite fait, on dirait que quand on se log avec succès on affect $_SESSION['logclient_ok'] = "oui";
 
DONC ... à priori ... dans index.php il faut qu'on début tu vérifie que $_SESSION['logclient_ok'] == "oui" et pas $_SESSION['logclient_ok'] = "non"  
 
Après bon, ça répond juste à

Citation :

mais qu'est ce qui empeche l'utilisateur mal intentioné de se connecté directement à l'index avec le menu sans passer par le login en recopiant simplement l'url?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 27-12-2005 à 16:46:07    

oki thx mate c'est un grand pas pour l'humanité que tu viens de me faire franchir là ;)

Reply

Marsh Posté le 28-12-2005 à 13:06:06    

je pète un câble la .. je suis bloqué je sais pas quoi faire :(

Reply

Marsh Posté le 28-12-2005 à 13:48:10    

pkoi il marche pas mon index? :cry:
 

Code :
  1. <?php
  2. if ($_SESSION['logclient_ok'] == "oui" )
  3. {
  4. ?>
  5. <html>
  6.    <head> <p align="center"><img src="logo.jpg" width="408" height="96" /></p>
  7.       <title>
  8.          Bienvenue sur le site Ekler.com
  9.       </title>
  10.    </head>
  11.  
  12. <body <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
  13. <h1>Liste des productions</h1> 
  14. <form action="moteur2recherche.html" method="post">
  15. <input type='submit' value='Liste des films'>
  16. </form>
  17. <h1>Insertion de films dans la base de données</h1>
  18. <form action="insertion2film.html" method="post">
  19. <input type='submit' value='insertion de film'></form>
  20.      
  21. </body>
  22. </html>
  23. <?php
  24.   }
  25.   else echo "go pve nub"
  26.   ?>


 
edited! :D


Message édité par hpenhp le 28-12-2005 à 14:28:23
Reply

Marsh Posté le 28-12-2005 à 13:54:11    

C'est "==" et pas "=" ligne 2


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 28-12-2005 à 13:59:56    

voui merci j'av vu ;)
 
mais ca n'empeche .. tu sais comment faire un boutton pour me délogger? :jap:

Reply

Marsh Posté le 28-12-2005 à 14:15:34    

le minimum :
 
 

Code :
  1. <form method='post' action='logout.php'>
  2. <input type='submit' value='délogger' />
  3. </form>


 
ds logout.php :

Code :
  1. <?php
  2. session_start();
  3. session_unset();
  4. session_destroy();
  5. ?>

Reply

Marsh Posté le 28-12-2005 à 14:15:34   

Reply

Marsh Posté le 28-12-2005 à 14:16:12    

argh mais nan.. je dis n'imp.. j'avais pas essayé en corrigeant le = par ==.. du coup now il m'affiche go pve nub!.. preuve que je suis pas log.. pourtant je me suis log.. donc..comment faire pour que le $_SESSION['logclient_ok'] = "oui" soit... comment dire.. activé.. pour un temps donné disons 20 minutes.. déja il faut un champ logclient_ok en autoincrement dans ma base de donnée auth(orisations) ou rien a voir?

Reply

Marsh Posté le 28-12-2005 à 14:18:10    

ritzle a écrit :

le minimum :
 
 

Code :
  1. <form method='post' action='logout.php'>
  2. <input type='submit' value='délogger' />
  3. </form>


 
ds logout.php :

Code :
  1. <?php
  2. session_start();
  3. session_unset();
  4. session_destroy();
  5. ?>



 
merci c'est toujours ca de pris, meme si en fait je suis pas log..  
 
enfin la variable de session $_SESSION['logclient_ok'] = "oui" n'est pas passé. pourquoi? je ne le sais pas encore :heink:  

Reply

Marsh Posté le 28-12-2005 à 14:20:00    

au début de chaque page il faut un session_start();
 

Code :
  1. <?php
  2. session_start();
  3. if ($_SESSION['logclient_ok'] == "oui" )
  4. {
  5. .....


Message édité par ritzle le 28-12-2005 à 14:20:49
Reply

Marsh Posté le 28-12-2005 à 14:35:30    

merci à toi au grand maître du php.. je sens que ca vient!!! :p

Reply

Marsh Posté le 28-12-2005 à 14:39:24    

t1 et dire que j'étais bloqué à cause d'un malheureux session_start..   :cry:  
 
enfin bref la ca marche je vous remercie tous les 2 les gars c'est du bon boulot, vraiment ca faisait un baille que j'étais bloqué dans l'avancement de mon site à cause de cette histoire d'authentification.. ca fait du bien quand les messages d'erreurs s'arretent un peu :jap:

Reply

Marsh Posté le 28-12-2005 à 17:24:26    

Code :
  1. $name = $_POST[ 'name' ];
  2. $password = $_POST[ 'password' ];
  3. $sql = "select * from autorized_user where name='$name' and password='$password'";


 
Une magnifique faille d'injection SQL ici  :o  c'est presque identique a un exemeple de ce qu'il ne faut surtout pas faire ^^
 
Réfléchi 2 secondes la dessus.  
 
Si dans le $_POST['name'] j'ai l'immense idée de passer ca comme valeur => admin'--
 
 
ben je me connecte tranquilement sans memeconnaitre le mot de passe et ce avec n'importe quel utilisateur  :love:

Reply

Marsh Posté le 28-12-2005 à 19:40:21    

C'est vrai que c'est un classique ... En même temps j'ai jamais reussi à la faire fonctionner ce trick sur mes sites, pê parceque le magic_quote est toujours activé ...


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 29-12-2005 à 08:44:01    

Ricco a écrit :

C'est vrai que c'est un classique ... En même temps j'ai jamais reussi à la faire fonctionner ce trick sur mes sites, pê parceque le magic_quote est toujours activé ...


 
c'est vrai que c'est de plus en plus souvent que l'on trouve les magic quotes activé :)
 
mais bon, c'est pas une raison  :o

Reply

Marsh Posté le 29-12-2005 à 11:23:44    

Koyomi a écrit :

Code :
  1. $name = $_POST[ 'name' ];
  2. $password = $_POST[ 'password' ];
  3. $sql = "select * from autorized_user where name='$name' and password='$password'";


 
Une magnifique faille d'injection SQL ici  :o  c'est presque identique a un exemeple de ce qu'il ne faut surtout pas faire ^^
 
Réfléchi 2 secondes la dessus.  
 
Si dans le $_POST['name'] j'ai l'immense idée de passer ca comme valeur => admin'--
 
 
ben je me connecte tranquilement sans memeconnaitre le mot de passe et ce avec n'importe quel utilisateur  :love:


 
+4000002.
J'ai proposé justement un script ici permettant d'éviter ce genre de chose mais certain ont crier au loup  [:ciler] J'ai lu un article (sur le magasine nexen) disant que même avec addslashe & cie il est possible de faire des injections au final j'ai raison et *ma méthode empeche à 100% l'injection sql vu qu'il n'y a pas de contacte directe avec la db.
[flambe]
 *  :sol: Oui je sais je me la raconte... [:x-oni]  
[/flambe]
 
Edit :  
Article sur l'injection SQL : http://www.directionphp.biz/a_la_une.php?mois=2005-10
Tuto pour eviter l'injection : http://forum.hardware.fr/forum2.ph [...] 1#t1097790


Message édité par Berceker United le 29-12-2005 à 11:30:58
Reply

Marsh Posté le 29-12-2005 à 11:31:16    

Et elle est où ta méthode ???


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 29-12-2005 à 11:32:03    

Ricco a écrit :

Et elle est où ta méthode ???


J'ai édité, j'ai placé les deux liens

Reply

Marsh Posté le 29-12-2005 à 11:40:41    

super, je vais passer le reste de mes vacances à essayer de réitérer l'exploit de ton prof :D

Reply

Marsh Posté le 29-12-2005 à 11:52:59    

ritzle a écrit :

super, je vais passer le reste de mes vacances à essayer de réitérer l'exploit de ton prof :D


Si tu regardes l'article tu comprendras par quoi il est passé ;).

Reply

Marsh Posté le 29-12-2005 à 11:55:06    

l'article ds DirectionPHP ?
je l'avais deja lu, mais ca m'avait vraiment ennuyé  :sleep:

Reply

Marsh Posté le 29-12-2005 à 12:02:34    

ritzle a écrit :

l'article ds DirectionPHP ?
je l'avais deja lu, mais ca m'avait vraiment ennuyé  :sleep:


T'inquiète, ça été pareille pour moi  :lol:

Reply

Marsh Posté le 29-12-2005 à 12:25:24    

Berceker United a écrit :

Si tu regardes l'article tu comprendras par quoi il est passé ;).


 
T'es trop dur  :cry: j'ai pas envie de le lire
 
Perso j'y connais rien en bidouille mais le coup de ton prof me parait être juste un bug surement corrigé depuis belle lurette.  
Parce que sinon, ça voudrait tout simplement dire que 99% des site web sont faillibles. Une fois qu'on a trouvé quels caractère passent à la trape ... c'est finis on peut l'appliquer partout.
 
Maintenant, j'suis pê mmulti-burned mais si on veut être tranquille, un peu moins bourrin et si on est avec mylsq ( = pas de requetes multiple ) on peut pê préférer mixer les deux, faire le select avec le mysql_real_escape($P_OST[login]) et se servir du php pour vérifier que le pass correspond bien non ?

Message cité 2 fois
Message édité par Ricco le 29-12-2005 à 12:25:54

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 29-12-2005 à 12:40:05    

Ricco a écrit :

T'es trop dur  :cry: j'ai pas envie de le lire
 
Perso j'y connais rien en bidouille mais le coup de ton prof me parait être juste un bug surement corrigé depuis belle lurette.  
Parce que sinon, ça voudrait tout simplement dire que 99% des site web sont faillibles. Une fois qu'on a trouvé quels caractère passent à la trape ... c'est finis on peut l'appliquer partout.
 
Maintenant, j'suis pê mmulti-burned mais si on veut être tranquille, un peu moins bourrin et si on est avec mylsq ( = pas de requetes multiple ) on peut pê préférer mixer les deux, faire le select avec le mysql_real_escape($P_OST[login]) et se servir du php pour vérifier que le pass correspond bien non ?


C'est pas un bug du language parce que ceci est valable sur n'importe language web. jsp, php4 ou 5, asp, asp.net ... c'est juste que c'est une mauvaise habitude de developper. Et effectivement énormement de site possede cette faille. Tu verrais sur l'article que meme le mysql_real_escape n'est pas suffisant.

Reply

Marsh Posté le 29-12-2005 à 13:30:36    

Il nous manque toujours le "proof of concept" :D


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 29-12-2005 à 23:13:35    

Ricco a écrit :


Maintenant, j'suis pê mmulti-burned mais si on veut être tranquille, un peu moins bourrin et si on est avec mylsq ( = pas de requetes multiple ) on peut pê préférer mixer les deux, faire le select avec le mysql_real_escape($P_OST[login]) et se servir du php pour vérifier que le pass correspond bien non ?


non, sa méthode fonctionne (si elle fonctionne effectivement) dès que l'on utilise une donnée venant de l'extérieur dans la requète.

Reply

Marsh Posté le 17-01-2006 à 11:50:06    

Koyomi a écrit :

Code :
  1. $name = $_POST[ 'name' ];
  2. $password = $_POST[ 'password' ];
  3. $sql = "select * from autorized_user where name='$name' and password='$password'";


 
Une magnifique faille d'injection SQL ici  :o  c'est presque identique a un exemeple de ce qu'il ne faut surtout pas faire ^^
 
Réfléchi 2 secondes la dessus.  
 
Si dans le $_POST['name'] j'ai l'immense idée de passer ca comme valeur => admin'--
 
 
ben je me connecte tranquilement sans memeconnaitre le mot de passe et ce avec n'importe quel utilisateur  :love:


 
Non c'est exactement pour cette raison que j'ai créer la table auth  > autorized_user, seuls les login et mdp présents dans cette table fonctionnent.
 
Ou alors j'ai pas compris ce que tu voulais dire expliques moi ;)

Reply

Marsh Posté le 17-01-2006 à 12:05:37    

en même temps c'est vrai que mon magic_quote est sur on

Reply

Marsh Posté le 17-01-2006 à 12:19:35    

injection sql = on rajoute du code sql dans la requette à l'insut du développeur.
 
Par exemple avec un $_POST[ 'name' ] égal à "' or ''='" et $password qui a la même valeur t'obtiens comme requette :

Code :
  1. select * from autorized_user where name='' or ''='' and password='' or ''=''

Cette requette a la superbe capacité de te retourner l'ensemble des lignes de ta table. Fait donc le test sur ton site, tu véras, c'est miraculeux. ;)
 
EDIT : Même si t'as magic_quote sur on, il vaut mieux développer en prévoyant dés le départ que magic_quote puisse être mis à off. Ca oblige peut être de rajouter quelques lignes de codes mais ca t'évitera des ennuis le jour où ce réglage changera à cause d'un changement d'hébergeur ou de serveur ou à cause d'une mise à jour de php.

Message cité 1 fois
Message édité par omega2 le 17-01-2006 à 12:26:54
Reply

Marsh Posté le 17-01-2006 à 12:38:15    

Dans l'une de mes pages qui proposent un résultat multiple (titre, auteur, acteur etc...)
je souhaiterais faire que le titre soit clickable.
 
j'en suis la pour l'instant mais ca ne fonctionne pas:
 
°°
$query = "SELECT * FROM movies WHERE ".$searchtype." LIKE '%".$searchterm."%'";  
 
$result = mysql_query($query) or die("Query failed" );  
 
$num_results = mysql_num_rows($result);  
 
echo "<p>Nombre de films trouvé: ".$num_results."</p>";  
$i = 0;  
while($row = mysql_fetch_array($result,MYSQL_ASSOC))  
{  
  echo "$i : <a href='"+mysql_result($result,$i,"titre" )."'>";
  echo "Le site web de ".mysql_result($result,$i,"titre" )"."
  echo "</a><br>";
  echo '</strong><br />realisateur: ';  
  echo stripslashes($row['realisateur']);  
  echo '</strong><br />acteur: ';  
  echo stripslashes($row['acteur']);  
  echo '</strong><br />annee: ';  
  echo stripslashes($row['annee']);  
  echo '</strong><br />genre: ';  
  echo stripslashes($row['genre']);  
  echo '</p>';  
}
 
mysql_free_result($result);
mysql_close($link);
°°
 
alors que ca marche avec cette ligne:
 
°°
echo "<p><strong>".($i+1).". titre: ";  
echo htmlspecialchars(stripslashes($row['titre']));
°°
 
mais bien sur je n'ai pas de lien.. :(
 
j'imagine qu'il y a une technique plus simple malheureusement je ne la connais pas encore..
 
(les °° c'est histoire de délimiter)

Reply

Marsh Posté le 17-01-2006 à 12:40:57    

omega2 a écrit :

injection sql = on rajoute du code sql dans la requette à l'insut du développeur.
 
Par exemple avec un $_POST[ 'name' ] égal à "' or ''='" et $password qui a la même valeur t'obtiens comme requette :

Code :
  1. select * from autorized_user where name='' or ''='' and password='' or ''=''

Cette requette a la superbe capacité de te retourner l'ensemble des lignes de ta table. Fait donc le test sur ton site, tu véras, c'est miraculeux. ;)
 
EDIT : Même si t'as magic_quote sur on, il vaut mieux développer en prévoyant dés le départ que magic_quote puisse être mis à off. Ca oblige peut être de rajouter quelques lignes de codes mais ca t'évitera des ennuis le jour où ce réglage changera à cause d'un changement d'hébergeur ou de serveur ou à cause d'une mise à jour de php.


 
 
j'ai beau rentré ce que tu me dis à savoir : "' or ''='" dans login et "' or ''='" dans mot de passe rien n'y fait : Accès refusé ;)

Reply

Marsh Posté le 17-01-2006 à 12:43:36    

Ca serait surement mieux de mettre une adresse comme lien plustôt que de mettre le titre du film. Par ce que le navigateur, il est pas trés intéllo dans son genre : il cherche le fichier à l'adresse indiqué même si elle correspond à rien et il comprendra jamais que le bon lien c'est "<a href='http://mondomaine.com/toto/detail.php?id=98675'>" quand tu lui indique "<a href='le nom de la rose'>".

Reply

Marsh Posté le 17-01-2006 à 12:44:33    

hpenhp a écrit :

j'ai beau rentré ce que tu me dis à savoir : "' or ''='" dans login et "' or ''='" dans mot de passe rien n'y fait : Accès refusé ;)


Si tu prévois pas le coup dés maintenant, on en reparlera quand tu changeras d'hébergeur. ;)

Reply

Marsh Posté le 17-01-2006 à 13:21:07    

omega2 a écrit :

Ca serait surement mieux de mettre une adresse comme lien plustôt que de mettre le titre du film. Par ce que le navigateur, il est pas trés intéllo dans son genre : il cherche le fichier à l'adresse indiqué même si elle correspond à rien et il comprendra jamais que le bon lien c'est "<a href='http://mondomaine.com/toto/detail.php?id=98675'>" quand tu lui indique "<a href='le nom de la rose'>".


 
nan le truc c'est que je veux en faire un lien vers une autre base de données.

Reply

Marsh Posté le 17-01-2006 à 14:20:51    

Et alors? Même si tu voulais faire un lien vers une page donnée d'un fichier pdf, il faudrait quand même fournir un lien valide vers une page ou un fichier.
Aprés que l'autre page demande le titre, l'id ou encore autre chôse, c'est une autre histoire et ca demande juste à adapter le lien ... lien qu'il faudra quand même écrire selon les régles.

Reply

Marsh Posté le 17-01-2006 à 15:01:07    

Berceker United a écrit :

C'est pas un bug du language parce que ceci est valable sur n'importe language web. jsp, php4 ou 5, asp, asp.net ... c'est juste que c'est une mauvaise habitude de developper. Et effectivement énormement de site possede cette faille. Tu verrais sur l'article que meme le mysql_real_escape n'est pas suffisant.


 
 
La méthode que tu suggères (à savoir lire TOUS les enreg) pour se connecter, c'est nawak. Je ne conseille à personne de l'utiliser.
Avec mysql_real_escape, il n'y a aucune chance d'injecter du mysql... :pfff:
A la limite, si tu es vraiment parano, tu fais un filtre pour ne conserver que les caractères alphanumeriques aA-zZ 0-9.

Message cité 1 fois
Message édité par smaragdus le 18-01-2006 à 01:03:06
Reply

Marsh Posté le 18-01-2006 à 17:12:43    

smaragdus a écrit :

La méthode que tu suggères (à savoir lire TOUS les enreg) pour se connecter, c'est nawak. Je ne conseille à personne de l'utiliser.
Avec mysql_real_escape, il n'y a aucune chance d'injecter du mysql... :pfff:
A la limite, si tu es vraiment parano, tu fais un filtre pour ne conserver que les caractères alphanumeriques aA-zZ 0-9.


Je suis pas parano c'est ce qui a été fait sous mes yeux  + il y a eu un article sous le site de nexen.  
"Tous les enregistrements"  et alors c'est que trois champs. Généralement il y a pas 36 000 comptes, il va pas faire tomber le serveur ou mysql va pas te cracher au visage pour ça.  
Alors ne conseiller à personne pour un gain gagner de <1% contre une sécurité qui garantie à 100% l'injection SQL, crier au loup pour ça et que le reste du code soit à dégueuler il faudra se remettre en question.  [:chewyy]
 
Au final, c'est pas déconseillé mais un choix.

Message cité 1 fois
Message édité par Berceker United le 18-01-2006 à 17:13:07
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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