(Tôi đã rất ngạc nhiên khi câu hỏi này không được hỏi trên Stack bây giờ, nhưng tôi đã thực hiện một số tìm kiếm và không thể tìm thấy bất kỳ điều gì oO)Tại sao tôi nên sử dụng id phiên trong cookie thay vì lưu trữ mật khẩu đăng nhập và (băm) trong cookie?
Tôi đang làm việc trên webapp dịch vụ và tôi tự hỏi điều gì là cách tốt nhất để xử lý thông tin đăng nhập của người dùng. Cho đến nay tôi có:
- Khi người dùng đăng nhập, họ cung cấp tín dụng. Mật khẩu được ướp muối và băm cục bộ, hơn là nó được truyền tới máy chủ qua POST (do đó người dùng sẽ không thể lấy lại mật khẩu ban đầu. Để kiểm tra chúng trên các trang web khác)
- Đăng nhập và mật khẩu băm được lưu trong cookie với TTL trong 15 phút (thu hồi mọi webaction)
- Passwod là máy chủ và được băm một lần nữa, và so với mật khẩu được lưu trữ trong cơ sở dữ liệu (vì vậy, mật khẩu được băm đôi với các loại muối khác nhau. vào cơ sở dữ liệu - họ vẫn sẽ không thể khôi phục thông tin đăng nhập)
- Người dùng có thể thực hiện tối đa 3 lần đăng nhập mỗi 5 phút từ một IP
- Người dùng nhận thông tin về thành công và unsu cuối cùng nỗ lực đăng nhập rất lớn cùng với ngày và IP
Ai đó đã lưu ý rằng tốt hơn để lưu trữ id phiên duy nhất thay vì mật khẩu băm trong cookie và tôi tự hỏi tại sao lại quan trọng như vậy id hay không - họ vẫn có thể nhận được gói từ đăng nhập với tất cả dữ liệu cần thiết để đặt ra làm người dùng hợp pháp và đăng nhập. Vì vậy, có bất kỳ lợi thế khác của phương pháp tiếp cận session-id được lưu trữ trên lưu trữ đăng nhập và băm mật khẩu trong thẩm định cookie?
Tôi đang khôi phục lại mật khẩu một lần nữa, phía máy chủ. Có mật khẩu băm đôi trong cơ sở dữ liệu, vì vậy bạn không thể nhận được mật khẩu băm đơn, được yêu cầu để đăng nhập – PiotrK
@PiotrK của nó vẫn là một ý tưởng khủng khiếp, không viết trình xử lý phiên của riêng bạn. – rook
Tôi muốn mô tả vấn đề của mình là có thể hữu ích cho cộng đồng - nhưng tình huống có phần khác: Tôi đang sử dụng Flash làm ứng dụng khách và thực hiện cuộc gọi HTTP và nhận dữ liệu bằng XML thuần túy. Tôi không thể sử dụng phiên tiêu chuẩn, bởi vì tôi không có GET hoặc COOKIE trong mã của tôi.Tôi chỉ đề cập đến các biến được khách hàng Flash lưu giữ là "cookie", vì chúng hoạt động như vậy. Đó là lý do tại sao tôi không thể sử dụng trình xử lý phiên PHP và phải viết của riêng tôi :) – PiotrK