Chciałbym wiedzieć, co ludzie uważają za najlepsze praktyki w zakresie zabezpieczania sekcji administracyjnej witryn internetowych, w szczególności z punktu widzenia uwierzytelniania / dostępu.
Oczywiście są rzeczy oczywiste, takie jak używanie SSL i rejestrowanie całego dostępu, ale zastanawiam się, gdzie powyżej tych podstawowych kroków ludzie uważają, że pasek jest ustawiony.
Na przykład:
- Czy polegasz tylko na tym samym mechanizmie uwierzytelniania, którego używasz w przypadku zwykłych użytkowników? Jeśli nie, to co?
- Czy działasz w sekcji Administracja w tej samej „domenie aplikacji”?
- Jakie kroki należy podjąć, aby uniemożliwić odkrycie sekcji administratora? (czy też odrzucasz całą sprawę „niejasności”)
Jak dotąd sugestie respondentów obejmują:
- Wprowadź sztuczną pauzę po stronie serwera do każdego sprawdzania hasła administratora, aby zapobiec atakom siłowym [grafika dewelopera]
- Używaj oddzielnych stron logowania dla użytkowników i administratora przy użyciu tej samej tabeli DB (aby zatrzymać XSRF i kradzież sesji, zapewniając dostęp do obszarów administracyjnych) [Thief Master]
- Rozważ także dodanie natywnego uwierzytelniania serwera internetowego do obszaru administracyjnego (np. Przez .htaccess) [Thief Master]
- Rozważ zablokowanie adresu IP użytkowników po kilku nieudanych próbach zalogowania się przez administratora [Thief Master]
- Dodaj captcha po nieudanych próbach logowania przez administratora [Thief Master]
- Zapewnij równie silne mechanizmy (przy użyciu powyższych technik) zarówno użytkownikom, jak i administratorom (np. Nie traktuj administratorów w specjalny sposób) [Lo'oris]
- Rozważ uwierzytelnianie drugiego poziomu (np. Certyfikaty klienta, karty inteligentne, miejsce na karty itp.) [JoeGeeky]
- Zezwalaj na dostęp tylko z zaufanych adresów IP / domen, dodaj sprawdzanie do podstawowego potoku HTTP (przez np. HttpModules), jeśli to możliwe. [JoeGeeky]
- [ASP.NET] Zablokuj IPrincipal i Principal (uczyń je niezmiennymi i niewliczalnymi ) [JoeGeeky]
- Federate Rights Elevation - np. Wyślij e-maila do innych administratorów, gdy uprawnienia któregokolwiek administratora zostaną zaktualizowane. [JoeGeeky]
- Rozważ szczegółowe prawa dla administratorów - np. Zamiast praw opartych na rolach, zdefiniuj prawa do poszczególnych działań na administratora [JoeGeeky]
- Ogranicz tworzenie administratorów - np. Administratorzy nie mogą zmieniać ani tworzyć innych kont administracyjnych. Użyj do tego zablokowanego klienta „superadmin”. [JoeGeeky]
- Rozważ certyfikaty SSL po stronie klienta lub piloty typu RSA (tokeny elektroniczne) [Daniel Papasian]
- Jeśli używasz plików cookie do uwierzytelniania, użyj oddzielnych plików cookie dla stron administratora i zwykłych, np. Umieszczając sekcję administratora w innej domenie. [Daniel Papasian]
- Jeśli jest to praktyczne, rozważ pozostawienie witryny administratora w prywatnej podsieci, poza publicznym Internetem. [John Hartsock]
- Ponowne wystawianie biletów autoryzacji / sesji podczas przechodzenia między kontekstami administratora / normalnego użytkowania witryny [Richard JP Le Guen]