Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2006, 15h32   #1
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
Par défaut [Sécurité] Sécurisation de formulaire

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
yaka2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2006, 15h38   #2
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
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";
Ainsi tu verras si les antislashs ont été ajoutés ou non...

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().
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2006, 15h42   #3
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
Salut,

Merci pour toutes ces précisions, je vais m'employer à sécuriser tout ça.

Bonne fin d'après-midi
yaka2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2006, 15h44   #4
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Et que penser de strip_tags ?
Utile ou non ?
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2006, 15h49   #5
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
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().
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h30   #6
Invité régulier
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 9
Points : 9
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 );
a priori ça fonctionne bien.

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...
yaka2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h16.


 
 
 
 
Partenaires

Hébergement Web