• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 27/11/2018

Sécurisez le traitement des erreurs et des logs

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Traitez les erreurs de manière sécurisée

Les bonnes pratiques de développement mettent en avant la nécessité de traiter les erreurs. En effet, les utilisateurs de votre site pourraient obtenir des messages d’erreur qui renvoient une mauvaise image de votre site. La fameuse erreur HTTP 404, qui correspond à une ressource non trouvée, en est la première illustration.

La fameuse erreur HTTP 404
La fameuse erreur HTTP 404

Ensuite, au-delà de la piètre expérience utilisateur que vous proposez, les messages d’erreur non traités sont une brèche de sécurité majeure, qui peut renseigner des utilisateurs malveillants sur la structure de votre base de données ou bien encore sur la technique employée pour protéger les mots de passe..

Message d'erreur sur un navigateur web, renseignant sur certains noms de variables, MySQL, etc.
Exemple d'erreur renseignant sur la BDD

Dans ces conditions, comment traiter les erreurs de manière sécurisée ?

  • Dans un premier temps, pensez à ne pas dévoiler d’informations sensibles comme des informations sur le système ou des éléments d’un compte utilisateur dans vos messages d’erreur ;

  • Ensuite, la plupart des environnements de développement le permettent, utilisez les messages d’erreur ou les pages d'erreur par défaut ;

  • Assurez-vous également que la manipulation des contrôles de sécurité ne donne pas, par erreur, accès à l’application à vos utilisateurs.

Utilisez des journaux de log

Un ou plusieurs fichiers de log au format prédéfini sont générés en cours d'exécution et conservent des messages informant au minimum sur :

  • L’horodatage de l'événement ;

  • L’estimation de la sévérité de l'événement ;

  • L’identité du compte concerné ;

  • L’adresse IP associée avec la requête ;

  • Le résultat (échec ou réussite) ;

  • Une courte description.

Cette fonctionnalité est intéressante à plus d’un titre :

  • L’administrateur dispose de statistiques sur l'utilisation d'un système ;

  • Le développeur peut déceler des défaillances et corriger les bugs ;

  • L’utilisateur peut utiliser un journal afin de revenir sur une  panne et refaire les opérations perdues.

Dans le cadre d’une approche de développement sécurisée, je vous recommande de garder traces des événements liés :

  • Aux erreurs d’authentification ;

  • Aux accès — erreurs de contrôles d’accès, tentatives de connexion avec des données de session expirées ou invalides, échecs de connexion TLS à l’administration du site.

En résumé

Dans la dernière partie de ce cours, je vous propose maintenant de nous intéresser à l'importance d’implémenter une stratégie globale de sécurité dans vos applications.

Exemple de certificat de réussite
Exemple de certificat de réussite