Salut,
Envoyé par
boteha
J'utilise des entités html dans la base de données, c'est une sécurité simple contre les inclusions SQL et je ne vois pas où est le problème.
Autre avantage les caractère accentués seront bien affichés pendant la bascule, quand mes programmes seront en UTF-8 et la BD en ISO.
Y a 10 ans de ça, j'avais vu de petits jeunes tenir des conférences sur cette approche : ils avaient appelé leur astuce "la sécurité profonde" !
Très drôle ! Dès que tu procède ainsi, tu rends tout très vite très compliqué.
Je vais te parler d'une expérience chez un client qui avait eu deux dev adeptes de cette ineptie.
Quand il a fallu mettre en place un outil tiers pour générer des stats à partir de la base de données, ils se sont rendus compte que cet outil ("merdique", d'après eux) ne comprenait pas les échappements HTML effectués avec htmlentities(). Ben, j'avais essayé de leur faire comprendre que stocker un affichage HTML en base n'avait aucun sens ; en vain !
Ensuite, le client avait décidé d'utiliser un moteur de rendu tiers pour générer les pages : comme tout bon moteur, les échappements étaient automatiques et je te donne en mille ce qui sortait sur la page : les valeurs avec les codes de remplacement des caractères accentués ! Ben ouais, en base on avait les entités donc une fois échappées on voyait :
Il était une fois deux développeurs ayant laissé de côté le bon sens le plus élémentaire
Bonjour, le bordel et le travail de reprise !
En conclusion :
ON ENREGISTRE TOUJOURS EN BASE DE DONNÉES LES VALEURS BRUTS, SANS TRANSFORMATION NI ÉCHAPPEMENT
Partager