• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 19/03/2024

Protégez vos données

Pourquoi protéger ses données ?

La protection des données est une des priorités d’un développement sécurisé, en particulier d’un point de vue de l’utilisation des API. Par ailleurs, un certain nombre de lois et de réglementations, comme la nouvelle réglementation européenne RGPD, sont mises en œuvre pour protéger les données à caractère personnel. Vos utilisateurs attendent de vous que leurs données soient traitées de manière adéquate, en particulier avec l’utilisation accrue des services du Cloud.

Quels sont les principes à respecter ?

Respectez les principes de protection des données

Chiffrez les données échangées !

Il y a encore quelques années, la majorité des applications ne chiffraient pas les données transmises vers d’autres systèmes. Malgré une forte réticence à chiffrer (encore actuellement), les techniques de chiffrement se sont beaucoup améliorées et le chiffrement de bout en bout constitue une garantie pour vos utilisateurs. Cette technique contribue aussi au développement de la confiance entre les utilisateurs et les développeurs.

Chiffrez les données sensibles stockées !

Avec l’émergence des services du cloud et donc le nombre croissant de données qui y sont stockées, mais également l’augmentation des données récoltées en vrac, vous comprenez aisément l’importance de chiffrer les données sensibles (nom, téléphone, adresse email, sexe, sensibilités politiques ou religieuses et problèmes médicaux).

En plus des mécanismes de chiffrement mis en place par les bases de données, il est important de se prémunir contre des agressions de niveau applicatif visant la base de données, ou bien contre l’accès par les administrateurs à ces données.

Protégez le traitement de vos données sensibles

Imaginez la situation suivante : votre utilisateur a accès sur votre plateforme à l’adresse URL suivante qui lui permet d'éditer son profil :  http://www.monserveur.com/app/utilsateur/522/edit

Que se passe-t-il si votre utilisateur tente d’accéder à l’URL :  http://www.monserveur.com/app/utilsateur/523/edit 

Cette faille connue sous le nom de référence directe d’objet est une des failles les plus répandues sur Internet. SI votre application ne gère pas cette faille, la protection de vos données est en danger.

Concrètement, comment fait-on ?

Mettez en oeuvre les dispositifs de protection de vos données

Chiffrer de bout en bout vos communications.

La méthode la plus simple pour garantir une protection optimale des données est de chiffrer tous les canaux allant vers et provenant de votre application : connexion à l'administration et à la base de données, accès au cloud, aux analytics de la plateforme et aux webservices.

Utilisez les chaînes de caractères sécurisées !

Les chaînes de caractères sont un élément incontournable du développement. Elles font partie des types de données fondamentaux pour de nombreux langages. Toutefois, la plupart des langages stockent la valeur des chaînes en clair directement en mémoire.

Au-delà de ce chiffrement, ces classes permettent les comportements suivants :

  • En cas de modification de la valeur, celle-ci est écrasée en mémoire et non écrite dans un nouvel emplacement comme avec une chaîne de caractères classique qui souvent fait cohabiter l’ancienne et la nouvelle valeur ;

  • Il est possible d'empêcher la modification de la valeur.

Dans vos langages de prédilection, vérifiez si une méthode analogue est disponible. Dans le cas contraire, il est conseillé de s’assurer que les données sensibles sont effacées dès que possible après leur utilisation dans la logique applicative.

Utilisez des requêtes préparées !

Nous avons vu les injections SQL dans le chapitre précédent. Lorsque l'on traite des données qui viennent de l'extérieur, il est absolument impératif de toujours vérifier celles-ci et de protéger les requêtes SQL notamment construites à partir de ces données.

Un moyen simple est d'utiliser des requêtes préparées ou des moteurs d’ORM (Object-Relational Mapping) comme Doctrine ou PDO pour accéder aux données.

En résumé

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