Les « magic quotes » sont une fausse sécurité qui pose plus de problèmes qu'elle n'apporte de solutions je trouve.
Il est possible d'injecter du SQL sans apostrophe grâce à la syntaxe 0x... pour noter les chaînes des caractères : LOAD_FILE(0x2F6574632F706173737764) lit le contenu du fichier /etc/passwd et ne contient pas d'apostrophe. De plus, cette protection a introduit une autre faille avec le charset Big5 (utilisé pour le mandarin) : la séquence d'octets (0xB3, 0x27) est échappée en (0xB3, 0x5C, 0x27), or 0xB35C est un caractère valide en Big5, et on obtient donc une apostrophe seule ! http://www.abelcheung.org/advisory/20071210-wordpress-charse(...) http://www.haypocalc.com/blog/index.php/2008/01/26/124-faill(...)
Côté pratique, c'est emmerdant pour l'utilisateur qui voit « l\'église » ou encore « l\\'église ».
Vivement PHP6 qui supprimer cette FIB (fausse bonne idée). D'ailleurs, la doc PHP affiche un gros avertissement : « WARNING: This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. ».
# D'aiSécurité des magic quotes ?
Posté par Victor STINNER (site web personnel) . En réponse au journal N'installez pas PHP 5.2.7 !. Évalué à 6.
Il est possible d'injecter du SQL sans apostrophe grâce à la syntaxe 0x... pour noter les chaînes des caractères : LOAD_FILE(0x2F6574632F706173737764) lit le contenu du fichier /etc/passwd et ne contient pas d'apostrophe. De plus, cette protection a introduit une autre faille avec le charset Big5 (utilisé pour le mandarin) : la séquence d'octets (0xB3, 0x27) est échappée en (0xB3, 0x5C, 0x27), or 0xB35C est un caractère valide en Big5, et on obtient donc une apostrophe seule !
http://www.abelcheung.org/advisory/20071210-wordpress-charse(...)
http://www.haypocalc.com/blog/index.php/2008/01/26/124-faill(...)
Côté pratique, c'est emmerdant pour l'utilisateur qui voit « l\'église » ou encore « l\\'église ».
Vivement PHP6 qui supprimer cette FIB (fausse bonne idée). D'ailleurs, la doc PHP affiche un gros avertissement : « WARNING: This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. ».