Cookie phiên làm việc là gì? Thời gian sống, bảo mật và các trường hợp sử dụng
API thu thập thông tin toàn cầu không có công cụ thu thập nội dung web công khai được phép và có thể chạy JavaScript khi cookie phiên cần được quan sát trong một phản hồi thực.
TL;DR
- Cookie phiên làm việc có một vai trò giao thức chính xác. Cookie phiên làm việc là một cookie được tạo ra mà không có thuộc tính Expires hoặc Max-Age, do đó tác nhân người dùng giữ nó cho phiên trình duyệt hiện tại thay vì một thời gian sống cố định.
- Cookie phiên làm việc phải được đọc ở lớp đúng. Vận chuyển, đại diện, chính sách trình duyệt, và ủy quyền ứng dụng là những mối quan tâm khác nhau.
- Các trung gian có thể thay đổi những gì một ứng dụng quan sát. Cổng, bộ nhớ đệm, mặc định trình duyệt, và thư viện khách hàng có thể thêm xử lý giữa byte nguồn và dữ liệu đã phân tích.
- Xác thực cần bằng chứng nội dung. Một trạng thái hoặc trường riêng lẻ không chứng minh rằng đại diện công khai dự kiến đã đến.
- Bảo mật phụ thuộc vào phạm vi và xác thực. Cú pháp giao thức không bao giờ cấp phép truy cập tài nguyên hoặc tin tưởng vào giá trị do người gọi cung cấp.
Cookie phiên làm việc là gì?
Cookie phiên làm việc là một cookie được tạo ra mà không có thuộc tính Expires hoặc Max-Age, do đó tác nhân người dùng giữ nó cho phiên trình duyệt hiện tại thay vì một thời gian sống cố định. Trình duyệt xác định khi phiên đó kết thúc. Khôi phục phiên có thể bảo tồn cookie qua một khởi động rõ ràng, do đó việc đóng một cửa sổ không phải là một cơ chế đăng xuất phía máy chủ đáng tin cậy.
Định nghĩa hữu ích bao gồm cả cơ chế và ranh giới của nó. Cookie phiên làm việc ảnh hưởng đến một phần cụ thể của một giao dịch, trong khi các trách nhiệm kề bên vẫn thuộc về HTTP, trình duyệt, phương thức vận chuyển đã chọn, ứng dụng, hoặc mô hình dữ liệu của máy chủ. Giữ các lớp đó tách biệt giúp báo cáo lỗi có thể tái sử dụng và ngăn chặn một thay đổi cấu hình bị nhầm lẫn với một quyết định kiểm soát truy cập.
Đối với các nhà phát triển API, câu hỏi đầu tiên là ai tạo ra giá trị hoặc hành vi. Câu hỏi tiếp theo là ai diễn giải nó. Câu hỏi cuối cùng là kết quả quan sát nào chứng minh rằng việc giải thích thành công. Ba câu trả lời đó biến một thuật ngữ từ điển thành một hợp đồng giao diện có thể kiểm tra.
Cookie phiên làm việc sống và kết thúc như thế nào
Máy chủ gửi Set-Cookie với tên, giá trị, và phạm vi nhưng không có thuộc tính bền bỉ rõ ràng. Trình duyệt lưu cookie trong hũ cookie của nó, áp dụng các quy tắc Domain, Path, Secure, HttpOnly, và SameSite, và trả lại nó trong các yêu cầu phù hợp sau đó trong phiên.
Nhiều ứng dụng đặt một định danh phiên mờ trong cookie và giữ trạng thái xác thực trên máy chủ. Định danh chọn một bản ghi phía máy chủ có thể chứa danh tính tài khoản, thời gian tạo, hoạt động gần đây, và trạng thái thu hồi. Xóa hoặc từ chối bản ghi đó kết thúc quyền lực ngay cả khi trình duyệt vẫn giữ giá trị cũ.
Thời gian sống phiên trình duyệt là một khái niệm thực hiện, không phải là một số phút cố định. Khôi phục phiên có thể làm cho trình duyệt đã khởi động lại hoạt động như thể phiên trước đó tiếp tục. Các ứng dụng yêu cầu một giới hạn thời gian không hoạt động nghiêm ngặt hoặc tuyệt đối thực thi điều đó trên máy chủ.
Đăng xuất nên thu hồi phiên phía máy chủ và gửi một hướng dẫn xóa cho cookie trình duyệt. Việc xóa từ phía khách hàng cải thiện vệ sinh, trong khi thu hồi từ máy chủ cung cấp ranh giới bảo mật khi một giá trị được sao chép hoặc tab đã khôi phục vẫn khả dụng.
Các lớp đứng sau một cookie phiên làm việc
Các thuật ngữ sau tách các thành phần thường bị gộp lại thành một nhãn. Đọc chúng như các giao diện giữa các bên tham gia hơn là như một trang trí trong một bản theo dõi mạng.
Thời gian sống cookie
Không có thuộc tính Expires hoặc Max-Age có nghĩa là lưu trữ phiên người dùng thay vì một ngày bền bỉ cố định.
Định danh phiên
Một giá trị ngẫu nhiên mờ có thể chỉ đến trạng thái phía máy chủ và không nên mã hóa dữ liệu cá nhân không cần thiết.
Bản ghi máy chủ
Trạng thái phiên có thẩm quyền, bao gồm danh tính, tính hợp lệ, và các quyết định thu hồi.
Thời gian chờ không hoạt động
Một chính sách máy chủ hết hạn một phiên sau một khoảng thời gian không có hoạt động được chấp thuận.
Thời gian chờ tuyệt đối
Một chính sách máy chủ kết thúc một phiên sau một thời gian sống tối đa bất kể hoạt động.
Xoay vòng
Phát hành một định danh mới sau khi xác thực hoặc thay đổi quyền hạn để giới hạn việc cố định phiên và quyền lực cũ không hợp lệ.
Tại sao cookie phiên quan trọng trong việc thu thập dữ liệu web
Cookie phiên làm việc có thể thay đổi những byte nào đến, cách những byte đó được giải thích, hoặc liệu mã trình duyệt có thể quan sát kết quả hay không. Một quy trình thu thập nên xác định tác động đó trước khi thay đổi công cụ. Ghi lại URL yêu cầu, URL cuối cùng, trạng thái phản hồi, loại đại diện, các trường giao thức liên quan, và một dấu hiệu nội dung dự kiến. Hồ sơ gọn nhẹ đó phân biệt một trang đúng từ một thông điệp truy cập, màn hình đồng ý, mục tiêu chuyển hướng, khung ứng dụng trống, hoặc mã hóa không tương thích.
HTTP trực tiếp là con đường thu thập đơn giản nhất khi dữ liệu yêu cầu tồn tại trong một phản hồi do máy chủ mở. Trình duyệt trở nên quan trọng khi nội dung được chấp thuận phụ thuộc vào việc thực hiện JavaScript, trạng thái được quản lý bởi trình duyệt, điều hướng, hoặc chính sách bảo mật của trình duyệt. Hai con đường không nên bị ép buộc nhìn giống nhau: trình duyệt quản lý cookie, nén, chuyển hướng, CORS, và lưu trữ theo quy tắc nền tảng, trong khi một khách hàng trực tiếp phơi bày một tập hợp các mặc định khác.
Tính liên tục phiên quan trọng bất cứ khi nào một phản hồi thiết lập trạng thái cho yêu cầu tiếp theo. Giữ một chuỗi được ủy quyền trong một ngữ cảnh khách hàng có giới hạn, bảo tồn địa phương và nguồn mạng cần thiết, và tránh trộn lẫn trạng thái từ những công việc không liên quan. Một proxy thay đổi nguồn mạng; nó không tái sản xuất tiêu đề, giải mã đại diện, thực thi kịch bản, hoặc cấp quyền truy cập vào nội dung bị hạn chế.
Phân tích chỉ bắt đầu sau khi xác thực đại diện. Xác nhận máy chủ cuối cùng, danh tính chính thức nếu có, loại phương tiện, trạng thái giải mã và dấu hiệu kinh doanh cần thiết trước khi trích xuất các trường. Thứ tự này ngăn một bộ phân tích chuyển đổi tài liệu lỗi thành các bản ghi trống mà có vẻ thành công về mặt kỹ thuật.
Các trung gian cần được chú ý rõ ràng. Một mạng phân phối nội dung có thể chọn một biến thể được mã hóa, một cổng có thể trả lời OPTIONS, một bộ nhớ đệm có thể tái sử dụng phản hồi đã được thỏa thuận, và một máy chủ ứng dụng có thể thiết lập cookie hoặc trường ủy quyền. So sánh chỉ mã ứng dụng với đầu ra trang cuối cùng bỏ qua lớp có thể đã đưa ra quyết định.
API Thu thập Dữ liệu Không Rác là liên quan khi một nhóm cần lấy dữ liệu công khai được phép một cách có quản lý, bao gồm cả các trang được render bằng JavaScript. Hợp đồng thu mua vẫn nên định nghĩa mục tiêu, các trường được cho phép, đại diện mong đợi, dấu hiệu chấp nhận, và điều kiện dừng. Khả năng sản phẩm không thay thế các điều khoản nguồn, đánh giá quyền riêng tư, hoặc xác thực mức ứng dụng.
Nơi Cookie Phiên có ý nghĩa
Cookie Phiên có vị trí trong một kiến trúc khi nó thay đổi hành vi sản phẩm cụ thể, yêu cầu tương thích, hoặc quyết định chẩn đoán. Những trường hợp sử dụng này mô tả công việc trước và tính năng giao thức sau.
Phiên trình duyệt đã xác thực
Một định danh không rõ kết nối các yêu cầu với trạng thái đăng nhập phía máy chủ mà không có ngày lưu trữ trình duyệt cố định.
Trạng thái thanh toán tạm thời
Một giỏ hàng hoặc quy trình làm việc ngắn hạn có thể vẫn có sẵn khi các trang liên quan đang mở.
Bảng điều khiển quản trị
Các giới hạn không hoạt động và tuyệt đối do máy chủ áp đặt có thể kiểm soát các phiên ưu tiên ngay cả khi trình duyệt vẫn mở.
Tính liên tục của quy trình đồng ý
Một giá trị theo phiên có thể nhớ một lựa chọn đang diễn ra mà không tạo ra một định danh lâu dài.
Tự động hóa đa trang có ủy quyền
Một ngữ cảnh trình duyệt giới hạn có thể duy trì trạng thái được phép qua điều hướng và sau đó có thể được đóng lại.
Luân phiên sau khi đăng nhập
Một định danh phiên mới tách trạng thái duyệt ẩn danh khỏi quyền lực đã xác thực.
Cookie Phiên và Cookie Bền vững
Cookie Phiên thuộc về một lớp của HTTP và không nên bị nhầm lẫn với các lớp liền kề. Một triển khai hợp lý xác định thành phần nào chọn giá trị, thành phần nào có thể thay đổi nó, và bằng chứng nào chứng minh rằng đại diện cuối cùng là đúng.
| Kích thước | Cookie Phiên | Khái niệm liên quan hoặc thay thế |
|---|---|---|
| Tín hiệu thời gian tồn tại | Không có Expires hoặc Max-Age | Expires hoặc Max-Age có mặt |
| Giữ lại của trình duyệt | Cho đến khi phiên do trình duyệt xác định kết thúc | Cho đến khi hết hạn hoặc bị xóa |
| Hủy bỏ từ máy chủ | Vẫn cần thiết cho đăng xuất an toàn | Vẫn cần thiết cho đăng xuất an toàn |
| Vai trò điển hình | Phiên đăng nhập hoặc quy trình làm việc tạm thời | Sở thích được nhớ hoặc mã thông báo lâu dài hơn |
| Khôi phục hành vi | Có thể tồn tại qua khôi phục phiên | Tồn tại theo thời gian sống rõ ràng |
Một sự so sánh chỉ có ích nếu nó duy trì ranh giới lớp. Hai cơ chế có thể đồng tồn tại trong một yêu cầu, và việc thay thế một không tự động thay thế cái kia. Tài liệu hành vi đã chọn dưới dạng đầu vào, đầu ra quan sát được, trạng thái thất bại, và quyền sở hữu.
Giả định Cookie Phiên Thất bại
- Đặt việc đóng trình duyệt ngang hàng với đăng xuất. Khôi phục phiên và các giá trị sao chép khiến vòng đời khách hàng trở thành ranh giới quyền lực không đáng tin cậy.
- Bỏ qua thời gian hết hạn của máy chủ. Chế độ lưu trữ trình duyệt không thay thế các chính sách không hoạt động, tuyệt đối, và hủy bỏ.
- Giữ nguyên cùng một id sau khi đăng nhập. Luân phiên sau khi xác thực giảm khả năng một định danh trước khi đăng nhập có thể khắc phục phiên đã xác thực.
- Sử dụng các định danh có thể dự đoán. Id phiên cần đủ ngẫu nhiên và không được tiết lộ thông tin tài khoản hoặc chuỗi.
- Tiết lộ id cho các kịch bản. Cookie xác thực thường được hưởng lợi từ HttpOnly khi JavaScript trang không cần giá trị.
- Chia sẻ phiên giữa các công việc. Người dùng không liên quan hoặc các công việc tự động không nên kế thừa cookie hoặc trạng thái cục bộ của nhau.
Hầu hết các lỗi trở nên dễ chẩn đoán hơn sau khi loại bỏ các giả định về những gì một thư viện hoặc trình duyệt đã thực hiện tự động. Ghi lại một bản truy xuất tối thiểu, làm mờ bí mật và thay đổi một biến điều khiển tại một thời điểm. Mục tiêu là có một giải thích ổn định về đại diện trả về, không phải một tập hợp các thay đổi tiêu đề không liên quan.
Một Đánh giá Bảo mật Cookie Phiên
Chuỗi này hoạt động như một đánh giá thiết kế trước khi ra mắt và như một chẩn đoán sản xuất sau khi hành vi thay đổi. Nó giữ bằng chứng giao thức liên kết với kết quả ứng dụng.
- Xác nhận rằng chỉ dẫn Set-Cookie bỏ qua Expires và Max-Age chỉ khi phạm vi phiên được dự định.
- Kiểm tra Secure, HttpOnly, SameSite, Domain và Path theo ngữ cảnh trình duyệt yêu cầu chặt chẽ nhất.
- Xác minh rằng xác thực tạo ra một định danh phiên mới thay vì nâng cấp một giá trị cũ tại chỗ.
- Kiểm tra thời gian chờ không hoạt động, thời gian chờ tuyệt đối, đăng xuất tài khoản và thu hồi của quản trị viên trên máy chủ.
- Xác nhận rằng các định danh cũ không hoạt động sau khi xoay và không tự động chọn một bản ghi hoạt động thứ hai.
- Kiểm tra nhật ký và các pipeline phân tích để phát hiện việc ghi lại tình cờ các giá trị Cookie hoặc Set-Cookie.
- Kiểm tra khôi phục phiên trình duyệt để tài liệu sản phẩm không hứa hẹn hành vi xóa mà trình duyệt không đảm bảo.
Kết thúc đánh giá bằng cách lưu một mẫu chấp nhận nhỏ và một mẫu bị từ chối với cùng các quy tắc làm mờ. Các thay đổi trong tương lai sau đó có thể được so sánh với danh tính trang đã biết, các trường mong đợi và nội dung đã giải mã thay vì chỉ dựa vào bộ nhớ hoặc ảnh chụp màn hình.
Bảo mật và Tính khả thi cho Cookie Phiên
Cookie Phiên tham gia vào một đường dẫn yêu cầu có thể giao thoa giữa các trình duyệt, cổng, bộ nhớ đệm và máy chủ gốc. Mỗi bước nhảy nên chỉ chấp nhận các giá trị nó hiểu, bảo tồn các trường cần sống sót và tránh sao chép thông tin đăng nhập hoặc dữ liệu cá nhân vào nhật ký. Cú pháp giao thức không phải là ủy quyền.
Các hồ sơ hoạt động nên ghi lại URL đã yêu cầu, URL cuối cùng, trạng thái, loại đại diện, tên các trường liên quan và một dấu chỉ thị nội dung giới hạn. Toàn bộ thân và các giá trị thông tin đăng nhập hiếm khi cần thiết cho chẩn đoán thông thường và có thể tạo ra rủi ro giữ lại không cần thiết.
Hành vi của trình duyệt và hành vi HTTP trực tiếp là các bề mặt kiểm tra khác nhau. CORS, lưu trữ cookie, giải nén tự động và xử lý chuyển hướng có thể được thực hiện bởi trình duyệt hoặc thư viện trước khi mã ứng dụng thấy kết quả. Ghi lại khách hàng và các mặc định của nó khi so sánh các bản ghi lại.
Các tiêu chuẩn Định nghĩa Cookie Phiên
các quy định về quản lý trạng thái HTTP định nghĩa cookie phiên mà không có thuộc tính duy trì. Nguồn chính này sửa chữa từ vựng và ranh giới được sử dụng trong bài viết này, trong khi hành vi thực hiện vẫn cần được quan sát trong khách hàng và việc triển khai đã chọn.
tham chiếu Set-Cookie tài liệu về hành vi phiên duyệt và khôi phục. Nguồn chính này sửa chữa từ vựng và ranh giới được sử dụng trong bài viết này, trong khi hành vi thực hiện vẫn cần được quan sát trong khách hàng và việc triển khai đã chọn.
hướng dẫn bảo mật cookie của MDN bao gồm chỉ dẫn về thời gian sống và cố định phiên. Nguồn chính này sửa chữa từ vựng và ranh giới được sử dụng trong bài viết này, trong khi hành vi thực hiện vẫn cần được quan sát trong khách hàng và việc triển khai đã chọn.
hướng dẫn quản lý phiên OWASP mô tả các kiểm soát định danh, thời gian chờ và gia hạn. Nguồn chính này sửa chữa từ vựng và ranh giới được sử dụng trong bài viết này, trong khi hành vi thực hiện vẫn cần được quan sát trong khách hàng và việc triển khai đã chọn.
Thực tế Cookie Phiên
Cookie phiên có ngữ nghĩa lưu trữ của phiên trình duyệt, trong khi máy chủ vẫn chịu trách nhiệm về thời gian sống xác thực, xoay vòng và thu hồi.
Đưa quy tắc đó vào một bài kiểm tra chấp nhận. Nêu rõ bên nào gửi tín hiệu, bên nào giải thích nó, các trung gian nào có thể thay đổi con đường, và dấu chỉ thị nào chứng minh sự thành công. Điều này khiến Cookie Phiên trở thành một phần của hệ thống quan sát hơn là một nhãn gắn sau một lỗi.
Sẵn sàng xác thực phản hồi web công khai?
Sử dụng Scrapeless Universal Scraping API để lấy nội dung công khai đã được phê duyệt và kiểm tra hợp đồng đại diện được mô tả trong hướng dẫn này.
Đăng ký ngay hôm nay và nhận được $5 tín dụng miễn phí — không cần thẻ tín dụng.
Nhận $5 tín dụng của bạn →Câu hỏi thường gặp
Cookie phiên có luôn biến mất khi trình duyệt đóng không?
Không. Các trình duyệt có thể khôi phục các phiên trước đó và giữ lại cookie phiên như thể trình duyệt chưa bao giờ đóng. Việc hết hạn nhạy cảm với bảo mật phải được thực thi bởi máy chủ.
Cookie phiên có cần một ngày hết hạn không?
Không. Việc bỏ qua cả Expires và Max-Age chính là điều tạo ra thời gian sống cookie. Các hồ sơ phiên phía máy chủ vẫn có thể có các chính sách hết hạn không hoạt động và hết hạn tuyệt đối.
Cookie phiên có tự động an toàn không?
Không. Thời gian sống phiên không thêm vào tính bảo mật, tính toàn vẹn hay quyền hạn. An toàn, HttpOnly, SameSite, phạm vi hẹp, định danh ngẫu nhiên, TLS và xác thực máy chủ giải quyết các rủi ro riêng biệt.
Chuyện gì xảy ra trong quá trình đăng xuất?
Đăng xuất an toàn thu hồi phiên phía máy chủ và gửi một chỉ dẫn xóa cookie với tên và phạm vi tương ứng. Việc thu hồi phía máy chủ ngăn chặn quyền lực tiếp tục nếu giá trị tồn tại ở nơi khác.
Id phiên có nên thay đổi sau khi đăng nhập không?
Có. Việc xoay vòng định danh phiên sau khi xác thực và thay đổi quyền lực giảm thiểu rủi ro cố định phiên và tách biệt trạng thái ẩn danh khỏi quyền lực đã xác thực.