Ich möchte wissen, welche Methoden als Best Practice für die Sicherung der Admin-Bereiche von Websites angesehen werden, insbesondere unter dem Gesichtspunkt der Authentifizierung / des Zugriffs.
Natürlich gibt es offensichtliche Dinge, wie die Verwendung von SSL und die Protokollierung des gesamten Zugriffs, aber ich frage mich, wo genau über diesen grundlegenden Schritten die Leute die Messlatte setzen.
Beispielsweise:
- Verlassen Sie sich nur auf denselben Authentifizierungsmechanismus, den Sie für normale Benutzer verwenden? Wenn nicht, was?
- Führen Sie den Admin-Bereich in derselben 'Anwendungsdomäne' aus?
- Welche Schritte unternehmen Sie, um den Admin-Bereich unentdeckt zu lassen? (Oder lehnen Sie die ganze "Dunkelheit" ab?)
Bisher enthalten die Vorschläge der Antwortenden:
- Führen Sie bei jeder Kennwortprüfung für Administratoren eine künstliche serverseitige Pause ein, um Brute-Force-Angriffe zu verhindern. [Developer Art]
- Verwenden Sie separate Anmeldeseiten für Benutzer und Administrator, die dieselbe DB-Tabelle verwenden (um zu verhindern, dass XSRF und Sitzungsdiebstahl Zugriff auf Administratorbereiche gewähren) [Thief Master]
- Erwägen Sie auch, dem Administratorbereich eine native Webserver-Authentifizierung hinzuzufügen (z. B. über .htaccess). [Thief Master]
- Ziehen Sie in Betracht, die IP-Adresse des Benutzers nach mehreren fehlgeschlagenen Anmeldeversuchen des Administrators zu blockieren [Thief Master]
- Fügen Sie Captcha nach fehlgeschlagenen Administrator-Anmeldeversuchen hinzu [Dieb-Meister]
- Stellen Sie sowohl Benutzern als auch Administratoren gleich starke Mechanismen (unter Verwendung der oben genannten Techniken) zur Verfügung (z. B. behandeln Sie Administratoren nicht speziell). Administratoren Administratoren [Lo'oris]
- Berücksichtigen Sie die Authentifizierung der zweiten Ebene (z. B. Client-Zertifikate, Smartcards, Kartenbereich usw.). [JoeGeeky]
- Erlauben Sie nur den Zugriff von vertrauenswürdigen IPs / Domänen und fügen Sie der grundlegenden HTTP-Pipeline (z. B. über HttpModules) nach Möglichkeit eine Prüfung hinzu. [JoeGeeky]
- [ASP.NET] Sperren Sie IPrincipal & Principal (machen Sie sie unveränderlich und nicht aufzählbar). [JoeGeeky]
- Erhöhung der Verbundrechte - z. B. E-Mail an andere Administratoren, wenn die Rechte eines Administrators aktualisiert werden. [JoeGeeky]
- Berücksichtigen Sie differenzierte Rechte für Administratoren. Definieren Sie beispielsweise anstelle von rollenbasierten Rechten Rechte für bestimmte Aktionen pro Administrator [JoeGeeky].
- Beschränken Sie die Erstellung von Administratoren - z. B. können Administratoren keine anderen Administratorkonten ändern oder erstellen. Verwenden Sie dazu einen gesperrten 'Superadmin'-Client.[JoeGeeky]
- Betrachten Sie clientseitige SSL-Zertifikate oder RSA-Schlüsselanhänger (elektronische Token). [Daniel Papasian]
- Wenn Sie Cookies zur Authentifizierung verwenden, verwenden Sie separate Cookies für Administrator- und normale Seiten, indem Sie beispielsweise den Administratorbereich auf eine andere Domain setzen. [Daniel Papasian]
- Wenn dies sinnvoll ist, sollten Sie die Admin-Site in einem privaten Subnetz außerhalb des öffentlichen Internets aufbewahren. [John Hartsock]
- Neuausstellung von Authentifizierungs- / Sitzungstickets beim Wechsel zwischen Administrator- und normalen Nutzungskontexten der Website [Richard JP Le Guen]