Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 14/08/2006, 12h47   #1
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Par défaut [SQL] Synthèse sur la sécurité des formulaires

Salut à tous,

J'ai lu avec intérêt les infos dans les posts relatifs aux formulaires et la FAQ PHP.

Mon cas, est le cas archi classique:
Formulaire HTML -> script PHP -> base MySQL 5
Et inversement lors de l'affichage des données:
base MySQL 5 -> script PHP -> page HTML.

De ce que j'ai compris, pour nettoyer les chaines issues d'un formulaire, on utilise le script php ainsi avant d'insérer dans la base:
Citation:
$nom=mysql_real_escape_string(trim($_POST['nom']));
....
Cela permet d'éviter les failles d'injection SQL.
Comment puis-je supprimer les balises HTML éventuelles tapées dans les formualires ?
Suis-je à l'abris des failles XSS ?

D'autres vulnérabilités possibles sur les formulaires ?

Merci
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h58   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Tu n'as pas besoin de supprimer les balises HTML, puisque normalement tu utilises la fonction htmlentities() ou htmlspecialchars() au moment de l'affichage.
La faille XSS ne s'applique pas à l'enregistrement en BDD mais à l'affichage (cf. avertissement ci-dessus).
Appeler mysql_real_escape_string() est suffisant pour te protéger des attaques d'injection SQL si tu utilises une base MySQL. Je te recommande cependant d'utiliser une classe d'abstraction : PDO est bien plus efficace que mysql_real_escape_string(), dans la mesure où il permet d'éviter les injections SQL pour tous les types de BDD supportés.

Voici un tutoriel sommaire : Les formulaires et PHP5
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 13h15   #3
Membre du Club
 
Avatar de thanaos
 
Inscription : mai 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 89
Points : 50
Points : 50
A tout hazard : Guide de Sécurité PHP.
Ca vaut ce que ca vaut.
__________________
Apache2 / PHP5.1.6 / Oracle9i / MySQL 5/ Windows 2003 Server
thanaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 14h37   #4
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Pour reprendre ta remarque sur les affichage Yogui, tu veux dire que par ex pour afficher une donnée sur ma page HTML, ce code:
Citation:
L'utilisateur :<?php echo "$nom" ?>
doit être:
Citation:
L'utilisateur :<?php echo (htmlentities("$nom")) ?>
?
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 15h20   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
En utilisant les 2 paramètres optionnels de la fonction, c'est exactement ça.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 19h38   #6
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Merci pour ces conseils éclairés
EvilAngel 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 05h16.


 
 
 
 
Partenaires

Hébergement Web