it-swarm-vi.com

Làm cách nào để sử dụng cookie một cách an toàn để xác thực người dùng?

Trong hầu hết các trường hợp, tôi thích sử dụng cookie để nhớ người dùng quay lại trang web của mình.

Trong những ngày đầu tiên/dại dột của mình, tôi sẽ lưu trữ UserID (số nguyên tăng tự động) trong cookie và nếu người dùng quay lại, tôi sẽ sử dụng giá trị cookie đó để đăng nhập chúng tự động. Đây là một ý tưởng tồi vì ai đó có thể dễ dàng chỉnh sửa cookie để sử dụng một số nguyên khác và đăng nhập như một người khác.

Có thể lưu trữ UserID theo cách tương tự nếu UserID là GUID không?

Các thực hành tốt nhất để lưu trữ cookie "nhớ tôi" là gì?

7
jessegavin

Bạn nên cân nhắc sử dụng session để xử lý loại kịch bản này.

Các phiên thường hoạt động bằng cách tạo một GUID duy nhất để xác thực người dùng và lưu nó vào cookie trên máy cục bộ của người dùng hoặc chuyển nó xung quanh, từ trang này sang trang khác, thông qua URL.

Phiên này GUID trỏ đến mục nhập tệp hoặc cơ sở dữ liệu trên máy chủ có thể được đọc và ghi bằng mã nguồn của bạn, bằng cách liên kết GUID trong cookie/URL của người dùng với GUID của mục nhập tệp hoặc cơ sở dữ liệu chứa dữ liệu của bạn.

Nói chung, an toàn khi đưa dữ liệu nhạy cảm hơn (như ID người dùng) vào các phiên vì người dùng cuối không nhìn thấy gì ngoại trừ phiên GUID.

Hầu hết các ngôn ngữ dựa trên web sẽ có một số loại quản lý phiên được tích hợp.

2
Nat Ryall

Lưu hai cookie:

  • UserId: chứa id người dùng
  • Password: chứa SHA1 của mật khẩu người dùng

Rất dễ dàng và an toàn. Hãy nhớ thuộc tính HttpOnly .

1
Thomas Bonini