Chúng ta đều thích cách ứng dụng gốc chỉ yêu cầu bạn đăng nhập một lần rồi ghi nhớ bạn cho đến khi bạn cho họ biết rằng bạn muốn đăng xuất. Rất tiếc, web không phải lúc nào cũng hoạt động như vậy.
Giờ đây, các thiết bị, đặc biệt là thiết bị di động, trở nên cá nhân hơn và có nhiều trang web gửi tất cả lưu lượng truy cập qua HTTPS hơn, giúp giảm nguy cơ đánh cắp mã thông báo. Do đó, các trang web nên xem xét lại chính sách cookie ngắn hạn và áp dụng các phiên hoạt động lâu hơn, thân thiện hơn với người dùng.
Tuy nhiên, ngay cả khi bạn muốn kéo dài phiên, một số trang web không xác minh thông tin xác thực của người dùng trên mỗi yêu cầu (nói cách khác, không có cách nào để thu hồi cookie phiên sau khi phát hành). Điều này thường dẫn đến các phiên ngắn, trong đó người dùng buộc phải đăng nhập thường xuyên để xác thực lại, cho phép những việc như thay đổi mật khẩu vô hiệu hoá các phiên hiện có trong một khoảng thời gian đã biết.
Nếu đây là phương pháp mà bạn sử dụng, chúng tôi có một giải pháp kỹ thuật có thể giúp bạn tự động xác thực lại cookie xác thực không trạng thái. Phương thức này hoạt động bằng cách có một mã thông báo phụ dài hạn có thể dùng để làm mới cookie xác thực ngắn hạn hiện có. Việc tận dụng mẫu trình chạy dịch vụ mới cho phép chúng ta thường xuyên "đăng ký" bằng mã thông báo có thời hạn dài, xác minh thông tin xác thực của người dùng (ví dụ: kiểm tra xem họ có thay đổi mật khẩu gần đây hay không hoặc thu hồi phiên hay không) và phát hành lại một cookie xác thực mới có thời hạn ngắn.
Đề xuất thiết thực để chuyển sang các phiên dài an toàn trên web
Từ đây, bài đăng này mô tả một kỹ thuật mới mà chúng tôi đề xuất gọi là 2-Cookie-Handoff (2CH). Chúng tôi hy vọng bài viết này sẽ giúp chúng tôi nhận được ý kiến phản hồi của cộng đồng về việc liệu phương pháp này có tích cực hay không. Nếu có, chúng tôi sẽ hợp tác với các bên trong ngành để ghi lại các phương pháp hay nhất để sử dụng 2CH.
Worker dịch vụ là một công nghệ mới được nhiều trình duyệt hỗ trợ, chẳng hạn như Chrome, Firefox, Opera và sắp ra mắt trên Edge. Các trình bổ trợ này cho phép bạn chặn tất cả các yêu cầu mạng từ trang web của mình thông qua một điểm mã chung trên ứng dụng mà không cần sửa đổi các trang hiện có. Điều này cho phép bạn thiết lập một "worker 2CH" cho người dùng đã đăng nhập có thể chặn tất cả các yêu cầu mạng mà trang của bạn đang thực hiện và thực hiện việc hoán đổi mã thông báo giống như các ứng dụng di động.
Trong hầu hết trường hợp, máy chủ của bạn đã có một điểm cuối mà các ứng dụng di động sử dụng để lấy mã thông báo mới có thời hạn ngắn, thường là bằng giao thức OAuth. Để bật mẫu trên trên web, bạn chỉ cần cập nhật điểm cuối đó để biết thời điểm trình chạy dịch vụ gọi điểm cuối đó, sau đó trả về một cookie phiên mới có thời gian tồn tại ngắn được định dạng theo cách mà các trang khác trên trang web đã mong đợi.
Nếu chưa có điểm cuối như vậy, máy chủ của bạn có thể tạo một điểm cuối chỉ để quản lý phiên trình duyệt.
Mẫu hai mã thông báo với trình chạy dịch vụ tuân theo mẫu OAuth 2.0 khá chặt chẽ, nếu đã chạy điểm cuối mã thông báo OAuth, thì bạn có thể sử dụng lại điểm cuối đó với trình chạy dịch vụ để xác thực web.
Bạn cũng có thể thắc mắc điều gì sẽ xảy ra nếu người dùng truy cập vào một trình duyệt không hỗ trợ worker dịch vụ. Nếu bạn triển khai phương pháp trên, họ sẽ không nhận thấy sự khác biệt và tiếp tục trải nghiệm các phiên ngắn.
Chúng tôi đã phát hành một ứng dụng khách và phần phụ trợ mẫu. Chúng tôi hy vọng bạn sẽ tự mình dùng thử và trả lời bản khảo sát về việc quản lý phiên.