hello,
la sécurité n'est pas qu'une question de "htmlentities" (ça serait trop beau !) mais surtout de réflexion sur l'application.
quelques conseils en vrac :
- pas d'upload de la part des visiteurs ou alors contrôle très strict des fichiers (exif pour les images)
- chmods suffisamment permissifs mais sans en avoir trop
- pas de fichiers sensibles accessibles trop facilement (style "identifiants_connexion_mysql.inc" )
- ce n'est pas une faille à proprement parler parce que ça ne génère pas d'erreur, mais c'est toujours bien de masquer le listing des dossiers, soit par une directive apache, soit par un fichier "index.html" vide
- pas de messages d'erreurs non traités
- pas de "@" devant les fonctions pour masquer les erreurs sans traitement sous-jacent
- grosse réflexion sur tout ce qui vient du visiteur, qui est par défaut non sécurisé : $_POST, $_GET, $_SERVER (pour certaines)
- effectivement, requêtes protégées
- accès aux pages protégées bien défini et délimité (qu'on ne puisse pas par simple modif d'une valeur d'URL avoir accès à ce qu'on ne devrait pas voir)
- ne pas hésiter à utiliser le typage des données (même si php l'est (trop) faiblement, mais utiliser un intval sur un ID d'article est toujours mieux que rien)
- htmlentities à l'affichage, en effet
- pas de sécurité via Javascript, éventuellement quelques contrôles de saisies mais "rien de bien méchant" vu que Javascript peut être désactivé
- pas de mysql_error() qui traine, ou alors sa réponse doit être envoyée par mail au webmaster
je pense que d'autres en apporteront, n'hésite pas à rechercher sur le forum, d'autres astuces trainent ça et là.
---------------
NewsletTux - outil de mailing list en PHP MySQL