Tôi muốn biết những gì mọi người coi là phương pháp hay nhất để bảo mật phần Quản trị của các trang web, cụ thể là từ quan điểm xác thực / truy cập.
Tất nhiên có những điều hiển nhiên, chẳng hạn như sử dụng SSL và ghi lại tất cả quyền truy cập, nhưng tôi tự hỏi chỉ ở trên các bước cơ bản này mà mọi người coi thanh được đặt ở đâu.
Ví dụ:
- Bạn chỉ dựa trên cùng một cơ chế xác thực mà bạn sử dụng cho người dùng bình thường? Nếu không, thì sao?
- Bạn có đang chạy phần Quản trị trong cùng một 'miền ứng dụng' không?
- Bạn thực hiện những bước nào để làm cho phần quản trị không bị phát hiện? (hay bạn bác bỏ toàn bộ điều 'tối nghĩa')
Cho đến nay, các đề xuất từ người trả lời bao gồm:
- Giới thiệu tạm dừng phía máy chủ nhân tạo trong mỗi lần kiểm tra mật khẩu quản trị viên để ngăn chặn các cuộc tấn công vũ phu [Nghệ thuật của nhà phát triển]
- Sử dụng các trang đăng nhập riêng biệt cho người dùng và quản trị viên bằng cách sử dụng cùng một bảng DB (để ngăn XSRF và đánh cắp phiên cấp quyền truy cập vào các khu vực quản trị) [Thief Master]
- Cũng nên xem xét thêm xác thực gốc máy chủ web vào khu vực quản trị (ví dụ: thông qua .htaccess) [Thief Master]
- Cân nhắc chặn IP của người dùng sau một số lần đăng nhập quản trị viên không thành công [Thief Master]
- Thêm hình ảnh xác thực sau khi đăng nhập không thành công của quản trị viên [Thief Master]
- Cung cấp các cơ chế mạnh như nhau (sử dụng các kỹ thuật trên) cho người dùng cũng như quản trị viên (ví dụ: không đối xử đặc biệt với quản trị viên) [Lo'oris]
- Xem xét xác thực cấp độ thứ hai (ví dụ: chứng chỉ ứng dụng khách, thẻ thông minh, không gian thẻ, v.v.) [JoeGeeky]
- Chỉ cho phép truy cập từ các IP / Miền đáng tin cậy, thêm kiểm tra vào đường ống HTTP cơ bản (thông qua ví dụ: HttpModules) nếu có thể. [JoeGeeky]
- [ASP.NET] Khóa IPrincipal & Hiệu trưởng (biến chúng thành bất biến và không thể liệt kê được) [JoeGeeky]
- Nâng cao quyền liên kết - ví dụ: gửi email cho các quản trị viên khác khi bất kỳ quyền nào của quản trị viên được nâng cấp. [JoeGeeky]
- Xem xét các quyền chi tiết dành cho quản trị viên - ví dụ: thay vì quyền dựa trên vai trò, hãy xác định quyền cho các hành động chỉ định cho mỗi quản trị viên [JoeGeeky]
- Hạn chế tạo quản trị viên - ví dụ: Quản trị viên không thể thay đổi hoặc tạo tài khoản quản trị viên khác. Sử dụng ứng dụng khách 'superadmin' bị khóa cho việc này. [JoeGeeky]
- Xem xét Chứng chỉ SSL phía máy khách hoặc bàn phím loại RSA (mã thông báo điện tử) [Daniel Papasian]
- Nếu sử dụng cookie để Xác thực, hãy sử dụng cookie riêng cho trang quản trị và trang bình thường, bằng cách đặt phần quản trị viên trên một miền khác. [Daniel Papasian]
- Nếu thực tế, hãy cân nhắc giữ trang quản trị trên một mạng con riêng tư, không kết nối Internet công cộng. [John Hartsock]
- Phát hành lại vé xác thực / phiên khi di chuyển giữa các bối cảnh quản trị / sử dụng bình thường của trang web [Richard JP Le Guen]