Bob sử dụng một ứng dụng web để đạt được điều gì đó. Và:
- Trình duyệt của anh ấy đang ở chế độ ăn kiêng, do đó nó không hỗ trợ cookie .
- Ứng dụng web là một ứng dụng phổ biến, nó giao dịch với rất nhiều người dùng tại một thời điểm nhất định - nó phải mở rộng quy mô tốt. Miễn là việc duy trì phiên sẽ áp đặt giới hạn số lượng kết nối đồng thời và tất nhiên, sẽ mang lại hình phạt hiệu suất , chúng tôi có thể muốn có một hệ thống ít phiên :)
Một số lưu ý quan trọng:
- chúng tôi có an ninh vận tải ( HTTPS và những người bạn tốt nhất của nó);
- đằng sau bức màn, ứng dụng web ủy quyền rất nhiều hoạt động cho các dịch vụ bên ngoài , thay mặt cho người dùng hiện tại (những hệ thống đó công nhận Bob là một trong những người dùng của họ) - điều này có nghĩa là chúng tôi phải chuyển tiếp cho họ thông tin đăng nhập của Bob .
Bây giờ, làm cách nào để chúng tôi xác thực Bob (theo từng yêu cầu)? Đó sẽ là một cách hợp lý để thực hiện một điều như vậy?
- chơi quần vợt với các thông tin xác thực thông qua các trường ẩn dạng HTML ... bóng chứa thông tin xác thực ( tên người dùng & mật khẩu ) và hai vợt tương ứng là trình duyệt và ứng dụng web. Nói cách khác, chúng tôi có thể vận chuyển dữ liệu qua lại qua các trường biểu mẫu thay vì qua cookie. Ở mỗi yêu cầu web, trình duyệt sẽ đăng thông tin đăng nhập. Mặc dù, trong trường hợp ứng dụng một trang , điều này có thể giống như chơi bóng quần trên tường cao su, thay vì chơi quần vợt , vì biểu mẫu web chứa thông tin đăng nhập có thể được duy trì trong suốt thời gian tồn tại của trang web (và máy chủ sẽ được định cấu hình để không cung cấp lại thông tin xác thực).
- lưu trữ tên người dùng và mật khẩu trong ngữ cảnh của trang - các biến JavaScript, v.v. Yêu cầu trang đơn ở đây, IMHO.
- xác thực dựa trên mã thông báo được mã hóa. Trong trường hợp này, hành động đăng nhập sẽ dẫn đến việc tạo mã thông báo bảo mật được mã hóa (tên người dùng + mật khẩu + thứ gì đó khác). Mã thông báo này sẽ được phục vụ trở lại khách hàng và các yêu cầu sắp tới sẽ được đi kèm với mã thông báo. Điều này có nghĩa không? Chúng tôi đã có HTTPS ...
- khác...
- phương sách cuối cùng: không làm điều này, lưu trữ thông tin đăng nhập trong phiên! Phiên là tốt. Có hoặc không có cookie.
Bạn có lo lắng về web / bảo mật nào liên quan đến bất kỳ ý tưởng nào được mô tả trước đây không? Ví dụ,
- time-outing - chúng tôi có thể giữ một dấu thời gian , cùng với thông tin đăng nhập (time-mark = thời gian Bob nhập thông tin đăng nhập của mình). Vd: khi nào NOW - dấu thời gian> ngưỡng , chúng tôi có thể từ chối yêu cầu.
- Bảo vệ tập lệnh trên nhiều trang web - không nên khác biệt theo bất kỳ cách nào, phải không?
Cảm ơn bạn rất nhiều vì đã dành thời gian để đọc này :)