Comment sécuriser votre site web?



À la recherche de méthodes et d'outils modernes qui nous permettent d'affirmer au moins avec une certaine certitude que le site Web est protégé contre les futures attaques de pirates (que tout le monde en aura, personne après tout n'a des doutes? Et s'il n'y en avait pas , alors ce n'est qu'une question de temps), des recommandations ont été trouvées que nous examinerons dans cet article.

Il s'agit d'une liste restreinte mais importante d'actions spécifiques que chacun devrait entreprendre avec sa propre ressource Web, si la réputation de l'entreprise, la sécurité des ressources Web et les données des clients ne sont pas des mots creux pour vous.

Il existe plusieurs méthodes de base pour protéger votre site:

  • fournir une protection contre les attaques DDoS;
  • connecter un certificat SSL;
  • utiliser un hébergement fiable ;
  • utiliser des plugins / bibliothèques / frameworks / CMS sécurisés (ci-après dénommés «modules tiers»);
  • SQL- XSS-;
  • - ;
  • - ;
  • , ;
  • , -, .

Naturellement, chaque élément a son propre «mais» et un certain nombre de sous-éléments sur lesquels il convient de prêter attention. Ils peuvent également être divisés en sous-groupes en fonction des considérations suivantes: certaines actions nécessitent une connexion unique, une configuration et de rares contrôles de santé (configuration d'un hébergement et d'un certificat SSL), tandis que d'autres impliquent des vérifications constantes, des mises à jour et nécessitent une attention particulière (tout le reste).

Hébergement fiable et SSL


Donc, pour commencer, notre arsenal dispose d'un serveur fiable ou d'un hébergement partagé, dont l'administration restera en dehors du champ d'application de cet article. Quant à la connexion d'un certificat SSL, c'est une mesure obligatoire et même les commentaires sont redondants ici.

Protection DDoS


Si votre hébergeur fournit des services de protection contre les attaques DDoS ou si vous utilisez les services des services anti-DDoS, alors cette question peut être considérée comme close, mais pourquoi ne pas renforcer la protection et l'organiser vous-même, ce qui est sans aucun doute une tâche longue et implique simultanée en utilisant les techniques suivantes: si Apache est utilisé comme serveur Web, vous devez mettre un proxy de mise en cache devant lui - Nginx ou Lighttpd, mais il est préférable d'utiliser Nginx sur le frontend, mais avec plusieurs modules complémentaires (limitez la taille des tampons et des connexions dans Nginx, configurez les délais d'attente et etc.; utilisez le module testcookie-nginx; utilisez le filtrage d'URL et donnez le code non standard 444, qui vous permet de fermer la connexion et de ne rien redonner); dans certains cas, utilisez le verrouillage géographique;Automatisez le processus d'analyse des journaux de sites Web, en accordant une attention particulière à la quantité de trafic, au temps de réponse du serveur, au nombre d'erreurs et au nombre de demandes par seconde.

Sécurité des tiers


En ce qui concerne la recommandation concernant l'utilisation de modules tiers sécurisés dans leurs applications, ce sujet est probablement l'un des plus importants, car la plupart des attaques malveillantes se produisent via des modules tiers. L'essence de ce paragraphe est d'utiliser des cadres et des bibliothèques avec des fonctionnalités de sécurité intégrées qui aideront les développeurs à minimiser l'apparition de vulnérabilités dans le processus de mise en œuvre. Je voudrais souligner des recommandations plus détaillées concernant cet article: utiliser des modules tiers provenant de sources fiables qui sont soutenus par la communauté et sont activement développés; Tenir à jour la liste de tous les modules tiers; Utilisez uniquement les fonctionnalités requises dans votre application.

Injections SQL et attaques XSS


La recommandation concernant la protection contre les injections SQL et les attaques XSS nécessite l'explication la plus détaillée, car le but des attaquants ici est les données spécifiques de la base de données (injection SQL) et les données utilisateur (attaque XSS). Il est également utile de comprendre que les problèmes liés à l'injection SQL couvrent une vaste section sur la fourniture d'un accès sécurisé à tous les entrepôts de données, y compris les bases de données relationnelles et les bases de données NoSQL, et incluent les problèmes de sécurité des requêtes (évitez les entrées illégitimes dans le cadre de SQL- et la meilleure solution consiste à utiliser des requêtes paramétrées applicables aux constructions SQL / OQL et aux procédures stockées), la configuration (vous devez vous assurer que les outils de sécurité SGBD existants et la plateforme sur laquelle il est installé sont correctement configurés),l'authentification (doit être effectuée sur un canal sécurisé) et les connexions (en raison de l'existence de plusieurs façons d'interagir avec la base de données (via un service ou une API), il est nécessaire d'assurer la sécurité des connexions à l'aide du chiffrement et de l'authentification).

En ce qui concerne les scripts intersites (attaque XSS), dans ce cas, les conséquences d'une gravité modérée peuvent être causées par des XSS ou XSS réfléchis basés sur le modèle d'objet de document (DOM), et les scripts intersites avec exécution de code dans le navigateur de l'utilisateur peuvent entraîner de graves conséquences. pour voler des informations d'identification, intercepter des sessions ou installer des logiciels malveillants. La principale mesure de protection dans ce cas est le filtrage (ajout de certaines combinaisons de caractères avant les caractères ou les lignes pour éviter leur interprétation incorrecte), l'encodage des données (conversion de certains caractères en combinaisons de caractères qui ne sont pas dangereuses pour l'interpréteur) côté serveur et l'utilisation d'un ensemble d'en-têtes HTTP en particulier, Set-Cookie avec les paramètres HttpOnly et Secure,ainsi que X-XSS-Protection avec une valeur de 1.

Une mesure de sécurité courante utilisée pour empêcher l'injection SQL et les scripts intersites consiste à vérifier la syntaxe et la sémantique de toutes les entrées. La norme syntaxique doit être comprise comme la correspondance complète des données d'entrée avec la forme de présentation attendue, et la norme sémantique indique que les données d'entrée ne dépassent pas les limites d'une fonction spécifique.

Journalisation et surveillance


La recommandation concernant la journalisation de tous les événements et la surveillance des événements de sécurité a déjà été mentionnée lors de l'examen des méthodes de protection contre les attaques DDoS, mais dans ce cas, nous considérons le côté plus large du problème lié à la détection des attaques et à leur neutralisation, ainsi qu'à l'enquête sur les incidents de sécurité déjà survenus. Ainsi, en plus des outils de journalisation standard fournis par le serveur Web, vous devez vous assurer que l'heure de l'événement et l'ID utilisateur sont enregistrés, ainsi que l'activité potentiellement dangereuse spécifique à votre site Web. En cas de détection d'activité malveillante, votre application doit bloquer la session utilisateur ou bloquer par adresse IP, en général, prendre des mesures et en informer l'administrateur. Nous parlons ici d'outils tels que WAF ou IDS / IPS.

Sauvegardes


En ce qui concerne la sauvegarde régulière du site Web et de toutes les données, vous devez ici réfléchir au lieu et au type de stockage de ces données. Un moyen efficace consiste à chiffrer le stockage des données et des sauvegardes critiques, ainsi que le stockage des fichiers de sauvegarde non pas sur le système de fichiers, mais dans un endroit différent, dont la sécurité ne fait aucun doute et qui sera toujours à portée de main pour un déploiement rapide.

12345 ou qwerty?


La recommandation pour l'utilisation de mots de passe forts et complexes ne concerne pas seulement et pas tant les mots de passe, mais en général, l'authentification et la gestion des sessions utilisateur. Il existe trois niveaux d'authentification, et l'utilisation de mots de passe uniquement se réfère uniquement au premier - le niveau le plus simple (le deuxième est l'authentification multifacteur; le troisième est l'authentification basée sur le cryptage). Cependant, même ici, il existe un certain nombre d'exigences pour les mots de passe eux-mêmes, le mécanisme de récupération de mot de passe, ainsi que pour le stockage sécurisé des mots de passe. La gestion de session vous permet de surveiller l'état de l'authentification des utilisateurs pour travailler avec un site Web sans réauthentification. Des sessions sont également nécessaires pour créer et terminer.

Protection du panneau d'administration


La dernière recommandation est de protéger le panneau d'administration du site Web, car c'est l'une des faiblesses du système global en raison des nombreuses fonctionnalités associées à l'ajout / modification de publications et de pages, au travail avec des fichiers et bien plus encore. Par conséquent, une condition importante est d'assurer un contrôle d'accès approprié, ainsi qu'une dissimulation maximale de l'emplacement du panneau administratif contre les cybercriminels, mis en œuvre en transférant simplement l'adresse à une adresse non standard et en maximisant la protection de ce point d'entrée grâce à la protection contre la force brute, le filtrage par adresses IP, etc. Lors de la création d'un système de contrôle d'accès, les principes suivants doivent être respectés: envoyer toutes les demandes via un système de contrôle d'accès; Refuser l'accès par défaut (c.-à-d. Rejeter la demande, si elle n'a pas été spécifiquement autorisée); privilèges minimum pour tous les utilisateurs,programmes ou processus; refus d'utiliser le modèle de contrôle d'accès, codé en dur dans le code; enregistrement de tous les événements liés au contrôle d'accès.

Conclusion


Cet article de revue examine certaines techniques pour améliorer la sécurité du site Web. Chaque recommandation individuelle mérite un examen distinct, mais même avec un examen aussi bref, une chose demeure claire - l'approche visant à garantir la sécurité doit être globale et systématique et ne doit pas être tolérée. Vous devez aborder soigneusement le contrôle d'accès, maintenir à jour les modules tiers mis à jour, filtrer les données d'entrée et bien plus encore. Vous avez quelque chose à ajouter? Assurez-vous de partager dans les commentaires.



Comme une publicité


VDSina propose des serveurs fiables avec un paiement quotidien ou unique, chaque serveur est connecté à un canal Internet de 500 mégabits et est exempt d'attaques DDoS!


All Articles