sécurité

Conseils de sécurité pour protéger votre site contre les pirates

Des conseils professionnels pour optimiser la sécurité de votre site Web et éviter les catastrophes informatiques.

Vous ne pensez peut-être pas que votre site peut être piraté, mais les sites Web sont constamment compromis. La majorité des failles de sécurité des sites Web ne consistent pas à voler vos données ou à perturber la présentation de votre site Web , mais plutôt à utiliser votre serveur comme relais de courrier indésirable ou à configurer un serveur Web temporaire pour traiter des fichiers de nature illégale. . D’autres manières très courantes d’abuser des machines compromises incluent l’utilisation de vos serveurs dans le cadre d’un botnet ou de l’extraction de Bitcoins. Vous pourriez même être frappé par le ransomware.

Le piratage est régulièrement effectué par des scripts automatisés écrits pour parcourir Internet dans le but d’exploiter les problèmes de sécurité connus des sites Web dans les logiciels. Voici nos neuf meilleurs conseils pour vous aider, vous et votre site, à rester en ligne.

Gardez le logiciel à jour

Cela peut sembler évident, mais il est essentiel de garder tous les logiciels à jour pour assurer la sécurité de votre site. Cela s’applique à la fois au système d’exploitation du serveur et à tous les logiciels que vous exécutez sur votre site Web, tels qu’un CMS ou un forum. Lorsque des failles de sécurité du site Web sont trouvées dans le logiciel, les pirates tentent rapidement de les abuser.

Si vous utilisez une solution d’hébergement géré, vous n’avez pas à vous soucier de l’application des mises à jour de sécurité pour le système d’exploitation, car la société d’hébergement doit s’en charger.

Si vous utilisez un logiciel tiers sur votre site Web, tel qu’un CMS ou un forum, vous devez vous assurer que vous appliquez rapidement les correctifs de sécurité. La plupart des fournisseurs ont une liste de diffusion ou un flux RSS détaillant les problèmes de sécurité du site. WordPress , Umbraco et de nombreux autres CMS vous avertissent des mises à jour du système disponibles lorsque vous vous connectez.

De nombreux développeurs utilisent des outils tels que Composer, npm ou RubyGems pour gérer leurs dépendances logicielles, et les vulnérabilités de sécurité apparaissant dans un package dont vous dépendez, mais auxquelles vous ne prêtez aucune attention, constituent l’un des moyens les plus simples de vous familiariser. Assurez-vous de garder vos dépendances à jour et utilisez des outils comme Gemnasium pour obtenir des notifications automatiques lorsqu’une vulnérabilité est annoncée dans l’un de vos composants.

Attention à l’injection SQL

Les attaques par injection SQL se produisent lorsqu’un attaquant utilise un champ de formulaire Web ou un paramètre d’URL pour accéder ou manipuler votre base de données. Lorsque vous utilisez SQL Transact standard, il est facile d’insérer sans le savoir un code malveillant dans votre requête, qui peut être utilisé pour modifier des tables, obtenir des informations et supprimer des données. Vous pouvez facilement empêcher cela en utilisant toujours des requêtes paramétrées, la plupart des langages Web ont cette fonctionnalité et il est facile à mettre en œuvre.

Protéger contre les attaques XSS

Les attaques par script inter-sites (XSS) injectent un code JavaScript malveillant dans vos pages, qui s’exécutent alors dans les navigateurs de vos utilisateurs et peuvent modifier le contenu de la page ou voler des informations à renvoyer à l’attaquant. Par exemple, si vous affichez des commentaires sur une page sans validation, un attaquant pourrait soumettre des commentaires contenant des balises de script et JavaScript, qui pourraient s’exécuter dans le navigateur de tous les utilisateurs et voler leur cookie de connexion, permettant à l’attaque de contrôler le compte de chaque utilisateur. utilisateur qui a consulté le commentaire. Vous devez vous assurer que les utilisateurs ne peuvent pas injecter du contenu JavaScript actif dans vos pages.

Cela est particulièrement préoccupant dans les applications Web modernes, où les pages sont désormais principalement construites à partir de contenu utilisateur et qui, dans de nombreux cas, génèrent du HTML qui est également interprété par des structures frontales telles que Angular et Ember. Ces frameworks fournissent de nombreuses protections XSS, mais le mixage entre serveur et client crée également de nouvelles voies d’attaque plus complexes: non seulement l’injection de JavaScript dans le code HTML est efficace, mais vous pouvez également insérer du contenu en insérant des directives angulaires ou Ember. des aides.

La clé ici est de se concentrer sur la façon dont le contenu généré par l’utilisateur peut échapper aux limites que vous attendez et être interprété par le navigateur comme quelque chose d’autre que ce que vous vouliez. Ceci est similaire à la défense contre l’injection SQL. Lorsque vous générez dynamiquement du code HTML, utilisez des fonctions qui apportent explicitement les modifications que vous recherchez (par exemple, utilisez element.setAttribute et element.textContent, qui seront automatiquement échappés par le navigateur, plutôt que de définir element.innerHTML à la main). dans votre outil de création de modèles, effectuez automatiquement les échappements appropriés, plutôt que de concaténer des chaînes ou de définir du contenu HTML brut.

Un autre outil puissant de la boîte à outils du défenseur XSS est la stratégie de sécurité du contenu (CSP). CSP est un en-tête que votre serveur peut renvoyer. Il indique au navigateur de limiter le mode d’exécution de JavaScript sur la page, par exemple d’interdire l’exécution de scripts non hébergés sur votre domaine ou de désactiver eval (). Mozilla a un excellent guide avec quelques exemples de configurations. Cela rend plus difficile le fonctionnement des scripts d’un attaquant, même s’ils peuvent les intégrer à votre page.

By