Administrateur PHPfrance |
3088 Messages
10 déc. 2007, 16:38
Effectivement, même si tu n'exécutes tes requêtes préparées qu'une fois, le gain de sécurité vaut largement toute perte de performance théorique.
En pratique, même s'il faut un petit peu plus de temps (CPU) pour préparer une requête, ça ne représente même pas 0.001s sur une page nécessitant 20 requêtes, donc l'aspect sécuritaire écrase l'aspect performance.
Tant qu'on est sur le sujet, il existe deux façons de préparer ses requêtes : localement par PDO, ou sur le serveur via le pilote MySQL. PDO permet d'utiliser l'un ou l'autre via l'option PDO::ATTR_EMULATE_PREPARES (PDO::MYSQL_ATTR_DIRECT_QUERY avant PHP 5.1.3). Les requêtes préparées localement sont un peu plus performantes.
PS: oh noes, grillé par Victor Brito
PPS: j'avais oublié d'aborder les formulaire. Comme l'ami Victor le disait, l'un n'empêche pas l'autre : filtre tes formulaires en entrée pour supprimer les données invalides (ou afficher une erreur à l'utilisateur), protège tes requêtes et filtre aussi ce que tu affiches en sortie. Même si tu utilises strip_tags() sur les données de ton formulaire, n'hésite pas à utiliser htmlspecialchars() lorsque tu les affiches sur ton site