Đây có thể là một bản sao của câu hỏi này, nhưng giải pháp được đề xuất là không khả thi đối với chúng tôi: Protect against 3rd party callers of document.execCommand("ClearAuthenticationCache")? Clears our session cookiesLàm thế nào để bảo vệ JSESSIONID của tôi khỏi document.execCommand ("ClearAuthenticationCache")?
câu chuyện dài ngắn: IE có một cách để xóa cookie phiên sử dụng JavaScript - document.execCommand(“ClearAuthenticationCache”)
. Điều này được sử dụng trong một loạt các ứng dụng web bao gồm Outlook Web App (và có lẽ là nhiều ứng dụng khác). Vấn đề là MS trong trí tuệ vô hạn của họ đã quyết định rằng lệnh này nên cookie phiên rõ ràng cho tất cả các trang web mở (bạn có thể nói tôi hơi cay đắng không, tôi mất vài tháng để tìm nguồn JSESSIONID bị thiếu ngẫu nhiên).
Chúng tôi sử dụng JSESSIONID cũng như một mã thông báo khác để đảm bảo người dùng được xác thực. JSESSIONID là an toàn và httpOnly. Điều này hoạt động tốt trừ khi JSESSIONID bị xóa bởi bên thứ ba. Vì vậy, câu hỏi của tôi là trong hai phần:
Có cách nào để bảo vệ cookie phiên của mình không?
Nếu không, có cách nào để tôi khôi phục một cách an toàn từ điều này không? Vì JSESSIONID là httpOnly, trình duyệt không thể đọc được, nhưng có thể có điều gì đó mà tôi không nghĩ đến.
Nếu có liên quan: chúng tôi sử dụng Tomcat 7 làm máy chủ web của chúng tôi. Ứng dụng này là một ứng dụng SaaS khá phức tạp và bảo mật khá quan trọng.
Cảm ơn tất cả.
Cảm ơn nhiều. Tùy chọn đầu tiên là không khả thi, nhưng tùy chọn thứ hai rất tốt có thể giải quyết vấn đề của chúng tôi. Chúng tôi có một thiết bị bảo mật riêng biệt xử lý SSL, nhưng nó có thể chuyển ID SSL trong tiêu đề cho Tomcat, tại thời điểm này chúng tôi có thể sử dụng nó làm sao lưu để nhận dạng JSESSIONID. – Pyro979