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

  FORUM HardWare.fr
  Programmation
  PHP

  Utilisation de mysql_real_escape_string() Encore un souci !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation de mysql_real_escape_string() Encore un souci !

n°1641755
kontas
Photographe amateur daltonien
Posté le 12-11-2007 à 17:41:37  profilanswer
 

Salut a tous !
 
Ayant un souci avec mes formulaire et les saisi d'apostrophe dans ces derniers, j'ai effectués des recherches et fais pas mal d'essai. J'ai reussi a faire en sorte que mes apotrophes soit accepter, mais non sans erreur !
 
Donc a la base j'avais ca :
 

Code :
  1. $sql = "INSERT INTO news(id_news, date, nom, titre, news) VALUES ('',now(),'".$nom."','".$titre."','".$news."')";
  2. mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());


 
j'ai réussi a faire accepter mes apostrophes avec ca :  

Code :
  1. $sql = "INSERT INTO news(id_news, date, nom, titre, news) VALUES ('',now(),'".$nom."','".$titre."','".$news."')";
  2. mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
  3. mysql_real_escape_string($news,$titre);


 
malgres le faite que mon insertion SQL soit effective, cela genere une erreur. Sauf qu'en essayant de reiteré ce resultat, je n'y arrive plus ^^
 
Sur la doc de Php j'ai trouver une autre chose et essayer ca:

Code :
  1. $sql = sprintf ("INSERT INTO news(id_news, date, nom, titre, news) VALUES ('',now(),'".$nom."','".$titre."','".$news."')  , mysql_real_escape_string($news,$titre) " );


 
Mais cela ne marche pas du tout !
 
alors que l'exemple du site etait :

Code :
  1. $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
  2. mysql_real_escape_string($user),
  3. mysql_real_escape_string($password));


 
Si vous avez une idée pour décoincer ma situation, je suis preneur.
 
Merci


Message édité par kontas le 20-11-2007 à 10:47:57
mood
Publicité
Posté le 12-11-2007 à 17:41:37  profilanswer
 

n°1641759
masklinn
í dag viðrar vel til loftárása
Posté le 12-11-2007 à 17:48:01  profilanswer
 

[:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc] C'est n'importe quoi. Vraiment.
 

  • Si tu es en PHP 5.1 ou supérieur, prière de passer par les bound parameters de mysqli ou PDO.
  • Sinon, prière d'appliquer mysql_real_escape_string sur toutes les valeurs venant du user, et pas l'espèce de soupe merdique que tu nous a pondu
Code :
  1. $query = sprintf("INSERT INTO news(id_news, date, nom, titre, news) VALUES ('',".now().",'%s','%s','%s')",
  2.    mysql_real_escape_string($titre),


 
Sachant que dans tous les cas ça n'empêche pas de réfléchir 30 secondes avant de pondre ce genre de merdes.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1641814
kontas
Photographe amateur daltonien
Posté le 12-11-2007 à 21:01:24  profilanswer
 

masklinn a écrit :

[:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc][:mlc] C'est n'importe quoi. Vraiment.
 

  • Si tu es en PHP 5.1 ou supérieur, prière de passer par les bound parameters de mysqli ou PDO.
  • Sinon, prière d'appliquer mysql_real_escape_string sur toutes les valeurs venant du user, et pas l'espèce de soupe merdique que tu nous a pondu


 
Sachant que dans tous les cas ça n'empêche pas de réfléchir 30 secondes avant de pondre ce genre de merdes.


 
N'importe quoi ?! oupsss, desoler,mais toute mes requetes Sql ont cette tete, alors je dois comprendre que j'ai tous a reprendre toutes mes requetes !?
 
je prend note de tes remarques, et je les appliquerais, mais j'aimerais aussi comprendre pourquoi ;)
 
 
les bound parameters de mysqli ou PDO, ca me dit rien du tous, alors je vais me rencarder dessus !
 
mysql_real_escape_string sur toutes les valeurs venant du user, oky, je prend note !
 
le truc qui est bizarre, c'est la tete des valeurs passé: '%s','%s','%s' , je comprend pas pourquoi tu les indiques de cette maniere !
 
 

n°1641820
masklinn
í dag viðrar vel til loftárása
Posté le 12-11-2007 à 21:11:45  profilanswer
 

kontas a écrit :

N'importe quoi ?! oupsss, desoler,mais toute mes requetes Sql ont cette tete, alors je dois comprendre que j'ai tous a reprendre toutes mes requetes !?


Oui, si toutes tes requêtes sont comme celle là ton appli c'est du gruyère niveau sécurité, et faut pas t'étonner si tu te fais un jour hacker.

kontas a écrit :

je prend note de tes remarques, et je les appliquerais, mais j'aimerais aussi comprendre pourquoi ;)


http://en.wikipedia.org/wiki/SQL_injection
http://ocliteracy.com/techtips/sql-injection.html
http://weblogs.sqlteam.com/jeffs/a [...] 10728.aspx

kontas a écrit :

le truc qui est bizarre, c'est la tete des valeurs passé: '%s','%s','%s' , je comprend pas pourquoi tu les indiques de cette maniere !


http://fr.php.net/sprintf
 
 


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1641974
kontas
Photographe amateur daltonien
Posté le 13-11-2007 à 09:32:16  profilanswer
 

Merci pour ces liens !
 
effectivement, si l'ont peut inserer n'importe quelle argument Sql dans les formulaires, ca fait de sacré faille de sécurité.
 
Disons que la sécurité de mon site n'est pas vraiment importante, puisqu'il s'agit d'un gestionnaire de parc informatique en PHP, donc les information n'y sont pas crucial, sauf les numero de serie de windows, et l'historique de toutes pannes et dépannage..... et comme c'est sur le réseau interne, les attaques sont limitées ^^. Mais pas principe je vais corriger ca !
 
Sinon j'ai essayer de hacker le login de mon site, grace au exemple donner sur les liens que tu m'a fournis plus haut, et je n'ai pas reussi. Alors je ne sais pas si ce script est bien fait ou si j'ai fait une mauvaise manip de hack ^^

n°1645661
kontas
Photographe amateur daltonien
Posté le 20-11-2007 à 10:47:07  profilanswer
 

Me revoila ^^
 
je continu a modifier mon site, en enlevant les requetes Sql 'dangereuse'
 
donc grace a vos conseil je sais remplacer des requetes type INSERT, mais maintenant j'en suis au requete Type UPDATE, et la c'est le drame !
 
le truc c'est que la requete a l'air de s'executer sans souci, que la valeur a inseré est bonne, et que la variable qui conditionne ou faire l'update est bonne ! mais il en resulte que ma champs reste vide apres l'execution de mon script
 
le voici
 

Code :
  1. $id_inter=$_GET["id_inter"];
  2.  // La nouvelle requete Sql
  3.  $sql = sprintf (" UPDATE inter SET rapport='%s' WHERE id_inter='.$id_inter.'",
  4.  mysql_real_escape_string($rapport));
  5.  mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
  6.  //Fin de la nouvelle requete
  7.  /*
  8.  // l'anciene requete sql qui marcher !
  9.  $sql = "UPDATE inter SET rapport='".$rapport."' WHERE id_inter=".$_GET['id_inter'];
  10.  mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
  11.  */
  12.  echo  $rapport;
  13.  echo 'Rapport rendu Senseï! ';
  14.  mysql_close();


 
$rapport n'est pourtant pas vide, mais non, ma table n'est pas renseigné !
 
Merci de votre soutient !


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

  Utilisation de mysql_real_escape_string() Encore un souci !

 

Sujets relatifs
transfomer String en "bout de code" (parse ???)Requete MySql group by / limit
sécuriser un site avec PHP, MySQL et IISUn livre pour apprendre le php mysql ?
[mysql] une requete = 2 insertions ... WTF ?!Recherche CMS "offline" (pas de php/mysql)
[MySql 5.x] lancement de commande système[resolu] php et mysql : requete trop longue?
utilisation de dup2[RESOLU][D 7] utilisation de try...except...end
Plus de sujets relatifs à : Utilisation de mysql_real_escape_string() Encore un souci !


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