J'aimerais savoir ce que les gens considèrent comme les meilleures pratiques pour sécuriser les sections d'administration des sites Web, en particulier du point de vue de l'authentification / de l'accès.
Bien sûr, il y a des choses évidentes, telles que l'utilisation de SSL et la journalisation de tous les accès, mais je me demande où au-dessus de ces étapes de base les gens considèrent que la barre est définie.
Par exemple:
- Comptez-vous simplement sur le même mécanisme d'authentification que celui que vous utilisez pour les utilisateurs normaux? Si non, quoi?
- Exécutez-vous la section Admin dans le même «domaine d'application»?
- Quelles mesures prenez-vous pour rendre la section d'administration non découverte? (ou rejetez-vous toute la chose `` obscurité '')
Jusqu'à présent, les suggestions des répondants incluent:
- Introduisez une pause artificielle côté serveur dans chaque vérification de mot de passe administrateur pour éviter les attaques par force brute [Developer Art]
- Utilisez des pages de connexion distinctes pour les utilisateurs et les administrateurs utilisant la même table de base de données (pour empêcher XSRF et le vol de session d'accorder l'accès aux zones d'administration) [Thief Master]
- Pensez également à ajouter l'authentification native du serveur Web à la zone d'administration (par exemple via .htaccess) [Thief Master]
- Pensez à bloquer l'adresse IP des utilisateurs après un certain nombre d'échecs de tentatives de connexion administrateur [Thief Master]
- Ajouter un captcha après l'échec des tentatives de connexion administrateur [Thief Master]
- Fournir des mécanismes tout aussi puissants (en utilisant les techniques ci-dessus) pour les utilisateurs et les administrateurs (par exemple, ne pas traiter les administrateurs spécialement) [Lo'oris]
- Considérez l'authentification de deuxième niveau (par exemple, les certificats clients, les cartes à puce, l'espace de cartes, etc.) [JoeGeeky]
- N'autorisez l'accès que depuis des adresses IP / domaines de confiance, ajoutez une vérification au pipeline HTTP de base (via par exemple HttpModules) si possible. [JoeGeeky]
- [ASP.NET] Verrouiller IPrincipal & Principal (les rendre immuables et non énumérables) [JoeGeeky]
- Federate Rights Elevation - par exemple, envoyez un e-mail à d'autres administrateurs lorsque les droits d'un administrateur sont mis à niveau. [JoeGeeky]
- Envisagez des droits précis pour les administrateurs - par exemple plutôt que des droits basés sur les rôles, définissez des droits pour des actions indicatives par administrateur [JoeGeeky]
- Limitez la création d'administrateurs - par exemple, les administrateurs ne peuvent pas modifier ou créer d'autres comptes d'administrateur. Utilisez pour cela un client «superadmin» verrouillé. [JoeGeeky]
- Considérez les certificats SSL côté client ou les télécommandes de type RSA (jetons électroniques) [Daniel Papasian]
- Si vous utilisez des cookies pour l'authentification, utilisez des cookies séparés pour les pages d'administration et normales, en mettant par exemple la section d'administration sur un domaine différent. [Daniel Papasian]
- Si possible, envisagez de conserver le site d'administration sur un sous-réseau privé, hors de l'Internet public. [John Hartsock]
- Réémettre des tickets d'authentification / session lors du déplacement entre les contextes d'administration / d'utilisation normale du site Web [Richard JP Le Guen]