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

  FORUM HardWare.fr
  Programmation
  PHP

  [Hacking ?] Requetes mysql dans un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Hacking ?] Requetes mysql dans un formulaire

n°1403920
naglafar
Posté le 10-07-2006 à 15:26:27  profilanswer
 

J'aimerai savoir si il est possible qu'un internaute puisse faire plomber votre base de données en se servant de la possibilité de remplir un champ de formulaire. Par exemple, quelque chose du style :
 

Code :
  1. $champ=$_POST['champ'];
  2. mysql_query("INSERT INTO table VALUES('$champ')" );


 
Et l'utilisateur entre par exemple dans le formulaire :
truc')" ); mysql_query("DELETE * FROM table" ); mysql_query("INSERT INTO table VALUES('table vidée !
 
Ca enverrai donc un truc du style :

Code :
  1. mysql_query("INSERT INTO table VALUES('truc')" ); mysql_query("DELETE * FROM table" ); mysql_query("INSERT INTO table VALUES('table vidée !')" );


 
Bon c'est un peu tordu, mais est-ce que php est assez sécurisé pour empêcher une telle chose ?

mood
Publicité
Posté le 10-07-2006 à 15:26:27  profilanswer
 

n°1403923
Elmoricq
Modérateur
Posté le 10-07-2006 à 15:30:00  profilanswer
 

SQL injection

n°1403928
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 15:33:00  profilanswer
 

magicquote protège automatiquement, mais c'est bien crade sa façon de faire.
 
sinon, une solution bête et méchante, mais infaillible (qui marche comme magicquote, mais "à la mano" ) :
 
$sql = "insert into toto values (".quote($maval)." );"
 
function quote($str)
{
    return "'".replace($str, "'", "''" )."'";
}


Message édité par Arjuna le 10-07-2006 à 15:34:08
n°1403934
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 15:35:28  profilanswer
 

le mieux étant, je sais pas si mysql et php supportent, d'utiliser ce qu'on appelle une commande parametrée :
 
$sql = "insert into toto values (:toto);"
 
cmd.commandtext = $sql;
cmd.parameter["toto"] = $valeur;
cmd.execute();
 
(simple algo, puisque de toute façon je ne sais même pas si ça existe en php)
a noter que si ça existe, c'est ce qu'il y a de plus rapide, de plus fiable, et de plus performant. donc si ça existe, oubliez tout ce que vous avez appris, et n'utilisez que ça !

Message cité 1 fois
Message édité par Arjuna le 10-07-2006 à 15:36:17
n°1403935
soulmanto
Chat Noir replica
Posté le 10-07-2006 à 15:37:05  profilanswer
 

sans oublier mysql_real_escape_string()...
 

Arjuna a écrit :

le mieux étant, je sais pas si mysql et php supportent, d'utiliser ce qu'on appelle une commande parametrée :
 
$sql = "insert into toto values (:toto);"
 
cmd.commandtext = $sql;
cmd.parameter["toto"] = $valeur;
cmd.execute();
 
(simple algo, puisque de toute façon je ne sais même pas si ça existe en php)
a noter que si ça existe, c'est ce qu'il y a de plus rapide, de plus fiable, et de plus performant. donc si ça existe, oubliez tout ce que vous avez appris, et n'utilisez que ça !


 
 
Oui, c'est supporté par MySQL et PHP depuis la 4.1 grâce à l'extension mysqli. (pas toujours activée chez les hébergeurs).


Message édité par soulmanto le 10-07-2006 à 15:42:47
n°1403959
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 15:58:08  profilanswer
 

En tout cas, pour ceux chez qui c'est activé, à utiliser : c'est vraiment mieux que la construction de requêtes sous forme de string, en terme de performances et de sécurité :)
 
En plus, ça permet de lever les problèmes te type avant de lancer la requête, ce qui est un plus intéressant

n°1403962
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-07-2006 à 15:59:16  profilanswer
 

Sinon il existe des bibliothèques d'abstraction de bdd très bien faite pour php ( genre adoDB) qui permettent de faire ça ( en plus de l'abstraction)

n°1403977
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 16:07:12  profilanswer
 

le coup des parameters, c'est justement un truc tout droit sorti de OLEDB ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Hacking ?] Requetes mysql dans un formulaire

 

Sujets relatifs
Sauvegarde formulaire non completMYSQL : Réparer des tables innodb
formulaireMySQL et MATCH as SCORE
formulaire : alignement à droite dans zone saisie ?SQL Server + pb sous requetes
problème avec mon formulaire perl/cgi (debutant)ouvrir l'acces MySQL au réseau local
[MYSQL] Probleme de creation de tableEnvoi données formulaire vers BDD ne fonctionne pas...
Plus de sujets relatifs à : [Hacking ?] Requetes mysql dans un formulaire


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