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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-MySQL] Sécurité lors des requêtes SQL avec script de commentaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-MySQL] Sécurité lors des requêtes SQL avec script de commentaires

n°128778
Dost67
Posté le 20-04-2002 à 00:00:16  profilanswer
 

Donc j'ai un script pour entrer des commentaires ! Ca se présente un peu comme ce forum (normal) avec des champs de texte où l'utilisateur entre ce qu'il veut mettre.
 
Ensuite la requête (simplifiée) :
INSERT INTO commentaires VALUES ('', NOW('';), '$comment';)
 
Le problème est dans la variable $comment (qui provient d'un textarea) car si l'utilisateur met
tu vas te faire hacker';); INSERT INTO autretable VALUES ('tu t fait hacker !';)
eh bien je me suis fait hacker !
 
Donc j'ai utilisé le htmlspecialchars($comment, ENT_QUOTES) qui m'a permis de transformer les ' en leur code HTML. Avez-vous d'autres conseils SVP ?

mood
Publicité
Posté le 20-04-2002 à 00:00:16  profilanswer
 

n°128855
HORNY-Gran​dcornu
grumf !
Posté le 20-04-2002 à 14:32:29  profilanswer
 

Up, ça m'intéresse aussi, j'ai un ptit systeme de news mais il est pas très folichon niveau sécurité.
 
Sinon fais bien attention de mettre le htmlspecialchars également en sortie, lorsque le serveur lira les infos de la table, car si par exemple un gugus s'amuse à mettre
 
<script>
 
while() {
 
        window.open('trucbazar.com','','';);
 
}
 
</script>
 
ça le fait pas trop. Enfin je dis ça parce que sur mon système de news, c'est pas un problème, les utilisateurs vont pas s'amuser à ça, mais avec un système de commentaires...

n°128858
z0rglub
Posté le 20-04-2002 à 14:49:20  profilanswer
 

je suis assez étonné que qqch de ce style :
INSERT INTO commentaires VALUES ('', NOW('';), 'INSERT INTO autretable VALUES ('tu t fait hacker !';)';)
puisse marcher... tu as testé ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°128866
Dost67
Posté le 20-04-2002 à 16:08:59  profilanswer
 

z0rglub a écrit a écrit :

je suis assez étonné que qqch de ce style :
INSERT INTO commentaires VALUES ('', NOW('';), 'INSERT INTO autretable VALUES ('tu t fait hacker !';)';)
puisse marcher... tu as testé ?  




 
C'est parce que je me suis trompé, j'ai mis ';) en trop à la fin. Ce que le hacker tape devrait donc donner :
INSERT INTO commentaires VALUES ('', NOW('';), 'tu vas te faire hacker';); INSERT INTO autretable VALUES ('tu t fait hacker !';)
Et là ça fonctionne et ça peut devenir dangereux si autretable c'est une avec des passwords et des logins.

n°128867
Dost67
Posté le 20-04-2002 à 16:12:14  profilanswer
 

HORNY-GRANDCORNU a écrit a écrit :

<script>
while() {
 
        window.open('trucbazar.com','&#
039;,'';);
 
}
 
</script>




 
Pour ça j'ai pompé le code de PHPNuke !! Toutes mes pages PHP commence par vérifier qu'il n'y a pas de <script> ou de parenthèses dans l'URL.

n°128908
Boris l'in​vincible
Life is random
Posté le 20-04-2002 à 19:54:54  profilanswer
 

ba suffit de faire un preg_replace qui change < en < et > en >

n°128918
bjbebert
Posté le 20-04-2002 à 20:41:14  profilanswer
 

Dost67 a écrit a écrit :

INSERT INTO commentaires VALUES ('', NOW('';), '$comment';)



Même sans être hacké, faut éviter ca. Si l'utilisateur met des caractères un peu particulier comme ' ou autre, ca va faire planter ta requête.
Il faut protéger la chaîne :
"INSERT INTO commentaires VALUES ('', NOW('';), '" . addslashes($comment) . "';)"

n°128945
Dost67
Posté le 20-04-2002 à 22:34:47  profilanswer
 

Bon j'ai fait :

Code :
  1. $dcomment = stripslashes($HTTP_POST_VARS['comment']);
  2. $dcomment = addslashes(htmlspecialchars($dcomment, ENT_QUOTES));


Avec ça j'ai pas encore réussi à m'auto-hacker.

n°128947
Dost67
Posté le 20-04-2002 à 22:35:49  profilanswer
 

Boris l'invincible a écrit a écrit :

ba suffit de faire un preg_replace qui change < en < et > en >  




Oui enfin un htmlspecialchars ça fait tout en même temps.

n°128971
bjbebert
Posté le 21-04-2002 à 00:31:43  profilanswer
 

Dost67 a écrit a écrit :

Bon j'ai fait :

Code :
  1. $dcomment = stripslashes($HTTP_POST_VARS['comment']);
  2. $dcomment = addslashes(htmlspecialchars($dcomment, ENT_QUOTES));


Avec ça j'ai pas encore réussi à m'auto-hacker.  



Il sert à quoi le htmlspecialchars :??:  
Normalement, cette fonction sert uniquement à générer une chaîne de caractère HTML.


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

  [PHP-MySQL] Sécurité lors des requêtes SQL avec script de commentaires

 

Sujets relatifs
[MySQL]Perte du mot de passe[PHP] Problème de session dans une fonction ...
Vitesse MySQLblocage SQL
[SQL] Validation?[PHP] C'est quoi cette erreur ????
[MySQL] insertion et respect de la casse[SQL] Taille d'une chaine de caractère
[PHP] Récupérer un taux de change automatiquementacceder à une base mysql a partir d'une fonction javascript
Plus de sujets relatifs à : [PHP-MySQL] Sécurité lors des requêtes SQL avec script de commentaires


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