~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

La sécurité sur le web, règle #1 : N'en dites jamais trop

La sécurité sur le web est quelque chose de peu connu au final, et nombreuses sont les failles qu'on rencontre tous les jours dûes simplement à un manque d'information des développeurs. Je vais décrire quelques erreurs communes et leurs solutions.

Règle n°1 : N'en dites jamais trop

La règle la plus simple est de faire attention aux informations que vous pourriez donner aux éventuels attaquants. Ainsi désactivez l'option ServerSignature d'Apache, et ne mettez pas de phpinfo qui traîne. Dans la mesure du possible masquez les versions des scripts php que vous utilisez, voir leurs noms. Cela vous évitera déjà beaucoup d'attaques automatiques basées sur des failles connues de scripts comme PunBB, phpBB ou encore Mantis. Tous les scripts connus ont des failles qui sont connues, et par flemme ou par manque de temps vous n'aurez pas toujours de version à jour, alors évitez déjà les bots qui font simplement des recherches sur google pour obtenir une liste de cibles potentielles. Ca ne vous dispense pas pour autant de faire des mises à jour régulières (ou même, soyons fous, de relire le code des scripts que vous installez), mais ça vous évitera pas mal de désagréments quand vous avez un peu de retard dans vos mises à jour.

Mais au-delà de ça, évitez aussi d'en dire trop dans les messages d'erreur. Par exemple un utilisateur essaye de se connecter, si le login n'existe pas, ne lui dites pas "Ce login n'existe pas", de même pour le mot de passe, évitez de dire "Mauvais mot de passe", dites simplement "Erreur de connexion, réessayer", ou quelque chose dans le genre. Il ne faut pas indiquer si c'est le login ou le pass qui est mauvais, afin de ralentir et rendre plus difficile une tentative de brute force ou autre bot. C'est un exemple mais ça s'applique à d'autres cas ou le message d'erreur ne doit pas être (trop) explicite pour ne pas aider l'assaillant.

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
       _       _      
 _ __ | | __ _(_) ___ 
| '_ \| |/ _` | |/ _ \
| |_) | | (_| | |  __/
| .__/|_|\__,_|_|\___|
|_|                   
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

denis

Je ne suis qu'en partie d'accord. Car pour l'exemple cité, vous proposez une dégradation de l'ergonomie du site pour augmenter (très partiellement) la sécurité. Il existe d'autre méthode (comme vérifier le nombre d'essai de connection) qui ne necessite pas forcément de dégrader le coté ergonomique du site. Pareil pour le masquage du code utilisée, ce n'est pas rendre hommage à celui-ci.