Saya ingin tahu apa yang dianggap orang sebagai praktik terbaik untuk mengamankan bagian Admin situs web, khususnya dari sudut pandang otentikasi / akses.
Tentu saja ada hal-hal yang jelas, seperti menggunakan SSL dan mencatat semua akses, tetapi saya bertanya-tanya di mana di atas langkah-langkah dasar ini orang-orang menganggap bilah harus disetel.
Sebagai contoh:
- Apakah Anda hanya mengandalkan mekanisme otentikasi yang sama yang Anda gunakan untuk pengguna biasa? Jika tidak, apa?
- Apakah Anda menjalankan bagian Admin di 'domain aplikasi' yang sama?
- Langkah apa yang Anda ambil untuk membuat bagian admin tidak ditemukan? (atau apakah Anda menolak keseluruhan 'ketidakjelasan')
Sejauh ini, saran dari penjawab meliputi:
- Memperkenalkan jeda sisi server buatan ke dalam setiap pemeriksaan sandi admin untuk mencegah serangan brute force [Seni Pengembang]
- Gunakan halaman login terpisah untuk pengguna dan admin menggunakan tabel DB yang sama (untuk menghentikan XSRF dan pemberian akses pencurian sesi ke area admin) [Thief Master]
- Pertimbangkan juga untuk menambahkan otentikasi asli server web ke area admin (mis. Melalui .htaccess) [Master Pencuri]
- Pertimbangkan untuk memblokir IP pengguna setelah sejumlah upaya login admin yang gagal [Thief Master]
- Tambahkan captcha setelah upaya login admin yang gagal [Thief Master]
- Sediakan mekanisme yang sama kuatnya (menggunakan teknik di atas) untuk pengguna dan juga admin (misalnya, jangan perlakukan admin secara khusus) [Lo'oris]
- Pertimbangkan otentikasi tingkat kedua (mis. Sertifikat klien, kartu pintar, ruang kartu, dll.) [JoeGeeky]
- Hanya izinkan akses dari IP / Domain tepercaya, tambahkan pemeriksaan ke pipeline HTTP dasar (misalnya, HttpModules) jika memungkinkan. [JoeGeeky]
- [ASP.NET] Kunci IPrincipal & Principal (buat mereka tetap dan tidak dapat dihitung) [JoeGeeky]
- Peninggian Hak Federasi - mis. Mengirim email ke admin lain ketika hak admin mana pun ditingkatkan. [JoeGeeky]
- Pertimbangkan hak yang sangat rinci untuk admin - mis. Daripada hak berdasarkan peran, tentukan hak untuk tindakan indikidual per admin [JoeGeeky]
- Batasi pembuatan admin - mis. Admin tidak dapat mengubah atau membuat akun admin lain. Gunakan klien 'superadmin' yang dikunci untuk ini. [JoeGeeky]
- Pertimbangkan Sertifikat SSL Sisi Klien, atau keyfobs jenis RSA (token elektronik) [Daniel Papasian]
- Jika menggunakan cookie untuk Otentikasi, gunakan cookie terpisah untuk admin dan halaman normal, misalnya dengan meletakkan bagian admin di domain yang berbeda. [Daniel Papasian]
- Jika praktis, pertimbangkan untuk menyimpan situs admin di subnet pribadi, dari internet publik. [John Hartsock]
- Terbitkan ulang tiket autentikasi / sesi saat berpindah antara admin / konteks penggunaan normal situs web [Richard JP Le Guen]