Sécurité de l'information

Pratiques sécuritaires de développement numérique


Choisir son mot de passe

La majorité des mots de passe que nous choisissons peuvent être facilement découvert par un programme informatique. Afin d’éviter que des incidents de sécurité sur les sites internet de CBC/Radio-Canada se produisent, nous demandons à ce que les mots de passe choisis soient fort et sécuritaire.

Tous les mots de passe utilisés pour s'authentifier à la base de données, au gestionnaire de contenu, à un partage de fichier FTP, ou autres, doivent être générés automatiquement par un ordinateur. Vous pouvez utiliser le site Strong Random Password Generator qui offre une bonne flexibilité en matière de génération.

Conserver vos mots de passe en sécurité dans un gestionnaire de mots de passe. Ceux-ci incluent le plus souvent un générateur de mots de passe intégré.

Authentification des utilisateurs et administrateurs

Si votre site internet offre la possibilité à ses utilisateurs de se connecter afin d'offrir du contenu personnalisé, des précautions particulières doivent être prises.

Ne jamais enregistrer les mots de passe des utilisateurs en clair dans une base de données. Générez plutôt une signature du mot de passe SHA256 en implémentant votre propre "sel".

Si votre site internet offre une connexion restreinte pour la gestion, pensez à déléguer l'authentification à Google si possible, en utilisant les plugin existants ou en intégrant Google OAuth à votre backend.

Les pages de connexion en HTTP

Les pages de connexion qui n'imposent pas le protocole HTTPS sont à risque de voir leur données (nom d’utilisateur et mot de passe entre autre) interceptées.

La mise en place d'une communication sécurisée avec le serveur lors de l'accès à une page d'authentification est essentielle à la protection des données des utilisateurs.

De plus, les dernières mises à jour des navigateurs web dévalorisent les sites qui ne supportent pas l'encryption, c'est pourquoi SSL devrait être configuré et activé. HTTPS devrait être le protocole de communication par défaut.

Systèmes de contrôle de révision de code

Les répertoires de Git ou Subversion contiennent le code source de tous vos fichiers, certains d'entre eux peuvent révéler des informations confidentielles telles que des clés privées ou encore des signatures de mots de passe.

Ne jamais sauvegarder de dossier .git ou .svn dans le répertoire html, même si le serveur web n'autorise pas l'accès à ces dossiers.

Utilisation des fichiers .htaccess

Rendez inaccessible tous les dossiers et fichiers qui ne sont pas censés être servis par le serveur. Beaucoup d'exemples sont disponibles sur le web pour sécuriser votre site grâce au fichier .htaccess.

Comment prévenir les vulnérabilités de type XSS (Cross site scripting)

La principale règle à suivre pour prévenir le DOM XSS est la suivante : valider toutes les données non fiables (formulaire, paramètres URL, etc), même si elles ne sont utilisées que dans les scripts côté client. Si vous devez utiliser la saisie de l'utilisateur sur votre page, utilisez-la toujours sous forme de texte, jamais sous forme de balises HTML ou de tout autre code potentiel.

Évitez les méthodes telles que document.innerHTML et utilisez plutôt des fonctions plus sûres, par exemple document.innerText et document.textContent. Si vous le pouvez, évitez totalement d'utiliser la saisie de l'utilisateur, surtout si elle affecte les éléments du DOM.

Lorsque vous traitez des données issues de formulaires, utilisez des fonctions de nettoyage et d'encodage de la donnée ; avant de la transmettre au backend et à la réception de la donnée.

Imposez des restrictions en terme de nombres et types de caractères si possible (i.e. nom, code postal, etc, pas de caractères spéciaux).

CMS

Si vous nécessitez la mise en place et l'accès à un CMS, nous pouvons vous offrir une instance Wordpress. Il sera de votre responsabilité de maintenir Wordpress et les plugins à jour.

Information complémentaire

OKIOK - Radio-canada - Atelier sur la sécurité des applications Web v1.1.pdf
Top 10 des risques de sécurité web de OWASP (2017)
Top 10 des bonnes pratiques de sécurité web de OWASP
Guide interne de sécurité de la compagnie de sécurité Pager Duty (rendu public)