Я хотів би знати, що люди вважають найкращою практикою захисту адміністративних розділів веб-сайтів, зокрема з точки зору автентифікації / доступу.
Звичайно, є очевидні речі, такі як використання SSL та реєстрація всього доступу, але мені цікаво, де над цими основними кроками люди вважають встановлену планку.
Наприклад:
- Ви просто покладаєтесь на той самий механізм автентифікації, який ви використовуєте для звичайних користувачів? Якщо ні, то що?
- Ви запускаєте розділ адміністратора в тому самому "домені програми"?
- Які кроки ви робите, щоб зробити адміністративний розділ невідкритим? (або ти відкидаєш цілу річ "невідомості")
Наразі пропозиції відповідачів включають:
- Введіть штучну паузу на стороні сервера в кожну перевірку пароля адміністратора, щоб запобігти атакам грубої сили [Developer Art]
- Використовуйте окремі сторінки входу для користувачів та адміністратора, що використовують одну і ту ж таблицю БД (щоб зупинити XSRF та викрадення сеансів надання доступу до адміністративних областей) [Thief Master]
- Подумайте також про додавання власної автентифікації веб-сервера до адміністративної області (наприклад, через .htaccess) [Thief Master]
- Подумайте про блокування IP-адреси користувачів після ряду невдалих спроб входу адміністратора [Thief Master]
- Додати капчу після невдалих спроб входу адміністратора [Thief Master]
- Забезпечити однаково потужні механізми (використовуючи вищезазначені методи) як для користувачів, так і для адміністраторів (наприклад, не обробляти адміністраторів спеціально) [Lo'oris]
- Подумайте про автентифікацію другого рівня (наприклад, сертифікати клієнта, смарт-картки, простір карт тощо) [JoeGeeky]
- Дозвольте доступ лише з надійних IP-адрес / доменів, додайте перевірку до базового конвеєра HTTP (наприклад, через HttpModules), якщо це можливо. [JoeGeeky]
- [ASP.NET] Заблокуйте IPrincipal & Principal (зробіть їх незмінними та незліченними ) [JoeGeeky]
- Федеральне підвищення прав - наприклад, надсилайте електронною поштою іншим адміністраторам, коли будь-які права адміністратора модернізуються. [JoeGeeky]
- Розгляньте детальні права для адміністраторів - наприклад, а не права на основі ролей, визначте права на індивідуальні дії на адміністратора [JoeGeeky]
- Обмежте створення адміністраторів - наприклад, адміністратори не можуть змінювати або створювати інші облікові записи адміністратора. Для цього скористайтеся заблокованим клієнтом "superadmin". [JoeGeeky]
- Розгляньте клієнтські SSL-сертифікати або брелоки типу RSA (електронні токени) [Даніель Папасіан]
- Якщо ви використовуєте файли cookie для автентифікації, використовуйте окремі файли cookie для адміністратора та звичайних сторінок, наприклад, розмістивши розділ адміністратора на іншому домені. [Даніель Папасіан]
- Якщо це можливо, розгляньте можливість розміщення сайту адміністратора у приватній підмережі поза громадським Інтернетом. [Джон Хартсок]
- Перевидавати квитки для авторизації / сеансу при переході між адміністративним / звичайним контекстами використання веб-сайту [Richard JP Le Guen]