Cette page regroupe les remarques intéressantes qui m'ont été faites sur le code ou la sécurité
en général :
- Dans la fonction happy_meal(), le remplacement du caractère spécial NULL n'est pas très utile dans ce cas
car le travail est déjà effectué par mysql_real_escape_string().
- strip_tags() ne couvre que la moitié des XSS. L'autre moitié est couverte par l'échappement des quotes par
mysql_real_escape_string(). Voir XSS Cheat Sheet pour une liste détaillée des façons de perpétrer
un XSS.
- addslashes() (utilisé par magic_quotes_gpc) échappe bien le caractère NULL, les quotes et les antislashs mais est une fonction dépréciée.
mysql_real_escape_string() fait le même travail en échappant en plus des caractères spéciaux à MySQL comme
la fin de ligne. De plus, addslashes() place son caractère d'échappement 8 bits avant le mauvais caractère détecté.
Sur certains charset multi-bytes mal conçus, l'échappement résultant peut être totalement inefficace.
- la fonction happy_meal devrait comporter plusieurs variantes afin d'ajouter des vérifications selon le type de
données (traiter différemment le contenu venant de la base de données, le contenu à afficher, le contenu venant
par POST pour contrer le Cross Site Request Forgery, etc..) : function happy_meal($meltingpot,$type).
- la fonction realpath() de PHP peut servir à contrer le Directory Transversal
- pour une liste plus fournie des erreurs de programmation communes :
CWE/Sans Top 25 Errors.
Merci de toutes ces remarques constructives permettant à chacun de mieux comprendre.