|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : novembre 2003 Messages : 62 ![]() |
Bonjour,
Sur cette page j'ai trouvé des infos sur l'injection SQL: http://www.phpsecure.info/v2/article/InjSql.php aucun de mes formulaires ne réagit sur: \" or a=\"a , (j'ai essayé avec des ' ou des \") alors est-ce que parce qu'ils sont suffisamment sécurisés (je ne vois pas comment...) ou alors je ne trouve pas la bonne formule... Enfin, je ne trouve pas exactement si je peux utiliser la fonction mysql_real_escape_string() car l'une des données envoyées contient une @ ... Est-ce qu'il y a un endroit où l'on peut trouver une liste des caractères qui permettrait ces injections, de façon à pouvoir bloquer la saisie de ceux-ci ? Merci |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() |
hello,
mysql_real_escape_string() te permet justement de te prémunir de ces caractères. Donc pas besoin d'avoir une liste de caractères à proscrire (surtout que bloquer les apostrophes par exemple, ça risque de limiter pas mal les saisies...). Sinon pour le fait que tu n'arrives pas à reproduire, déjà pour s'en rendre compte, le mieux est d'afficher la requete : Code :
echo '<pre>', htmlspecialchars( $requete ), "</pre><br />\n"; Si magic_quote_gpc est activé dans ta configuration de PHP, alors PHP aura automatiquement ajouté un antislash devant les guillemets simple ou doubles... sauf qu'il "oublie" des caractères auxquels MySQL est sensible... dans ce cas, comme indiqué dans la doc il faut faire un stripslashes() suivit d'un mysql_real_escape_string(). |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2003 Messages : 62 ![]() |
Salut,
Merci pour toutes ces précisions, je vais m'employer à sécuriser tout ça. Bonne fin d'après-midi |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : février 2006 Messages : 840 ![]() |
Et que penser de strip_tags ?
Utile ou non ? |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() |
Pour moi non.
MySQL n'est absolument pas sensible au HTML, donc pour lui ça ne changera rien, et seule mysql_real_escape_string() est utile. Après pour l'affichage, tout dépend de ce que tu cherches à faire... pour ma part je me contente de htmlspecialchars(). |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : novembre 2003 Messages : 62 ![]() |
Bonjour,
Alors effectivement le magic_quote_gpc est activé, donc j'ai mis quand même en place le mysql_real_escape_string(), mais je n'ai pas réussie à trouver comment on peut enlever ces antislashs, si bien que je ne peux pas vraiment tester pour voir si c'est efficasse. Par contre, toujours concernant les caractères, mysql_real_escape_string() ne gère pas les %, et sur une de mes requetes avec LIKE, il suffisait d'entrer % autour de quelque chose pour passer... j'ai rajouté un Code :
$valeur = str_replace( '%', '', $valeur ); Alors, est-ce que je suis vraiment à l'abri, ou est-ce qu'il y a d'autres caractères que je dois remplacer pour être tranquille... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com