Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2302 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Mysql: injection sql, addslashes?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mysql: injection sql, addslashes?

n°920575
kryzantem
Posté le 07-06-2007 à 23:16:20  profilanswer
 

Bonjour,
 
Dans le cadre de la sécurisation d'une application web, j'essaie de me mettre dans la peau d'un hacker tentant de forcer l'accès de mon site.
 
Pour faire court, pensez vous que la requête suivante issue de mon code est sûre et suffit à écarter toute menace? ( :lol: )
 

Citation :


Q="SELECT LOGIN FROM AUTH WHERE USER='".addslashes($_POST['user'])."' AND PASS='".addslashes($_POST['pass'])."';" ;


 
De plus, j'ai entendu parler de la fonction CHAR(..) de Mysql qui permer d'injecter n'importe quel charactère même avec addslashes. Je souhaiterais avoir la confirmation que ce n'est pas le cas avec des variables non numérique (j'entends par numériques celles qui ne seront précédées par un quote dans la condition,
 ex:  
WHERE NOMBRE='trois'  et WHERE PARAM=3
 
 
Merci d'avance pour vos réponses et vos corrections :jap:


Message édité par kryzantem le 07-06-2007 à 23:19:36
mood
Publicité
Posté le 07-06-2007 à 23:16:20  profilanswer
 

n°920663
Taz
bisounours-codeur
Posté le 08-06-2007 à 09:56:42  profilanswer
 

c'est pas comme ça qu'on fait une requête. utilise des prepare statements avec des placeholders

n°920716
kryzantem
Posté le 08-06-2007 à 12:00:17  profilanswer
 

j'ai regardé ce que tu m'as dit
http://dev.mysql.com/tech-resource [...] ments.html
et en effet, niveau sécurité ça a l'air top. Je ne cache pas que je débute sous Mysql et j'apprends en même temps que je code.
 
Sinon, (même si ce n'est pas sûrement pas la meilleure manière de procéder), que pensez-vous de la requête ci-dessus? Est-il possible pour quelqu'un de bypasser une telle requête? J'ai tourné ma requête dans tous les sens et je ne vois vraiment pas comment la bypasser... (ca me rassure ! :d)
 
a+


Message édité par kryzantem le 08-06-2007 à 12:03:37
n°920905
matafan
Posté le 08-06-2007 à 15:58:01  profilanswer
 

Si tu ne veux pas pas des prepared statements, je pense qu'il vaut mieux utiliser mysqli_escape_string() que addslashes(). Ca sert à la même chose mais c'est spécifique MySQL.

n°921283
kryzantem
Posté le 09-06-2007 à 14:58:35  profilanswer
 

d'accord mais est-il possible de bypasser la requête?

n°921374
HouseMD
Posté le 09-06-2007 à 20:48:21  profilanswer
 

cat prog

n°921485
multani
Dépressionnisé
Posté le 10-06-2007 à 11:39:43  profilanswer
 

La fonction addslashes est à éviter, il vaut mieux utiliser les fonctions de protection de chaines de caractère spécifiques à chaque bases de données : mysql_real_escape_string pour MySQL, pg_escape_string pour PostgreSQL.
 
addslashes posent des problèmes avec les chaines de caractères contenant des caractères Unicode, mysql_escape_string ne prend pas en compte le jeu de caracètre de la base de données. Google et php.net te donneront plus d'infos là dessus.
 
Sinon, comme a dit Taz, le mieux c'est de faire des prepared statements (extension mysqli ou PDO en php)

n°921618
matafan
Posté le 10-06-2007 à 20:16:05  profilanswer
 

Les mysql_* ça fait longempts que ça a été remplécé par les mysqli_*

n°921773
kryzantem
Posté le 11-06-2007 à 10:46:30  profilanswer
 

A part indiquer ce qu'il faut utiliser en théorie, quelqu'un pourrait-il illustrer le trou de sécurité lié à ma requête? :d
 
OK pour la théorie mais si personne n'est capable de contourner ma requête, à quoi bon m'expliquer qu'elle est insécurisée...?
 
+

n°921826
matafan
Posté le 11-06-2007 à 12:30:58  profilanswer
 

http://ilia.ws/archives/103-mysql_ [...] ments.html
 
Cette page montre comment exploiter addslashes pour injecter des ' dans une requête SQL, D'ailleurs il montre aussi comment faire la même chose avec mysqli_real_escape_string.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Mysql: injection sql, addslashes?

 

Sujets relatifs
Postfix 2.3.8+authentification mysql.Problèmes de wifi tordu (aircrack, injection de paquets...)
postfix+sasl+mysqlPostfix +MySQL +SASL2 +Postfixadmin
Snort et MySqlOptimisation Apache 2 et MySQL
Cluster Haute Disponibilité MySQLmysql -> postgre via my2pg => postgres.h: No such file or directory
[Postfix] Can't connect to mysql server[Gentoo] BIND - mysql ?
Plus de sujets relatifs à : Mysql: injection sql, addslashes?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR