Modérateur PHPfrance |
10684 Messages
02 juin 2012, 12:35
C'est pas tant le lourd travail de maintenance qu'il faut craindre.. ça c'est juste la pénitence pour ne pas l'avoir fait dès le départ.. le risque c'est surtout de tout perdre, donner des accès non désirés voire pire...
Deux des principaux problèmes de sécurités sont effectivement
- les injections sql, qui consistent à passer des valeurs non prévue dans ta requête pour qu'elle fasse autre chose (supprimer des données au lieu de les lister par exemple). mysql_real_escape_string() permet effectivement de protéger les caractères spéciaux d'une chaine de caractère pour l'utiliser dans une requête sql, mais ne vérifieras effectivement pas que les données transmises sont au bon format. Les contrôles sont à faire avant l'enregistrement en base des données soumises par l'utilisateur.
- le cross scripting (ou XSS) qui consiste à envoyer des instructions html/javascript qui seront exécutés lorsque les utilisateurs accéderont à la page. htmlentities/htmlspecialchars permettent de remplacer le html par des entités équivalente pour forcer l'affichage de la chaine sans qu'elle soit exécutée. Les contrôles sont plutôt à faire avant l'affichage des données soumises par l'utilisateur afin de garder des valeurs non formatées en base (et ainsi pouvoir les utiliser pour autre chose que de l'affichage html)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...