Đổi máy chủ VPN có đăng xuất bạn khỏi cửa hàng không?
Địa chỉ ra mới không làm rỗng hũ cookie. Trước tiên hãy quyết định bạn đang kiểm tra đường mạng, phiên đã đăng nhập hay dữ liệu trang đã lưu.
Đổi đường ra VPN khi cửa hàng đang mở ở tab khác, và giỏ hàng thường vẫn còn đó. Đây không phải lỗi VPN; đó là trình duyệt làm đúng những gì được bảo. Cookie do trình duyệt gửi đi, và một đường mạng mới không thay đổi những gì trình duyệt lưu. Ba câu hỏi khác nhau ẩn sau «trang vẫn nhận ra tôi», và câu trả lời phụ thuộc vào việc bạn thực sự đang hỏi câu nào.
Ba câu hỏi, một triệu chứng
Thứ nhất: trang có nhận ra cookie đã lưu không? Thứ hai: trang có nhận ra tài khoản đã đăng nhập, vốn tồn tại độc lập với bất kỳ cookie riêng lẻ nào không? Thứ ba: trang có nhận ra điều gì đó về trình duyệt hoặc thiết bị thay vì trạng thái đã lưu không? Mỗi câu có bài kiểm tra và cách khắc phục riêng.
| What you changed | What it actually tests |
|---|---|
| VPN exit address | Whether the site treats a different network origin differently |
| Cookie jar for one site | Whether a stored identifier was doing the recognition |
| Browser profile or account | Whether identity, rather than storage, links the visits |
Phần lớn sự nhầm lẫn đến từ việc đổi cái thứ nhất rồi mong cái thứ hai theo sau. Địa chỉ mạng và kho lưu của trình duyệt là hai hệ thống riêng biệt mà cùng một trang tình cờ sử dụng.
Cookie thực sự mang theo gì
Quản lý trạng thái HTTP, được quy định trong RFC 6265, cố ý đơn giản: máy chủ đặt tên và giá trị kèm phạm vi, và trình duyệt gửi lại chúng cho các yêu cầu khớp với phạm vi đó. Giá trị có thể là mã định danh phiên, một tùy chọn, hoặc một token mờ mà máy chủ ánh xạ tới bản ghi giỏ hàng. Không có chỗ nào trong cơ chế nhắc đến địa chỉ của máy khách.
Chính thiết kế đó là lý do các lần đăng nhập và giỏ hàng thông thường sống sót qua thay đổi mạng, và cũng là lý do chúng sống sót qua đó đối với các trình theo dõi. Cùng một cơ chế phục vụ cả hai mục đích và không phân biệt giữa chúng. Không có trường nào trong giao thức dành cho địa chỉ máy khách, nên không có gì để một đường ra mới vô hiệu hóa. Một trang muốn gắn cookie với nguồn gốc mạng sẽ phải tự thêm logic đó.
Khi trang trả lại cookie, máy chủ tra cứu bản ghi mà giá trị đó trỏ tới. Việc đổi tuyến đường mà yêu cầu đã đi không thay đổi tra cứu đó, và đó là toàn bộ lời giải thích cho quan sát về giỏ hàng mua sắm.
Quyết định bài kiểm tra của bạn đang đo gì
Trước khi thay đổi bất cứ điều gì, hãy ghi lại trạng thái xuất phát: hồ sơ trình duyệt nào, tài khoản nào, dữ liệu trang nào, đường mạng nào. Sau đó chỉ thay đổi đúng một trong số đó và quan sát. Một bài kiểm tra thay đổi đồng thời địa chỉ ra và hồ sơ trình duyệt không chứng minh được gì về cả hai.
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' https://shop.example/cart
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' --interface 198.51.100.44 https://shop.example/cartCả hai lệnh dùng lại cùng một tệp cookie, và lệnh thứ hai buộc một địa chỉ nguồn cục bộ khác ở nơi máy chủ cho phép. Phản hồi của giỏ hàng giống nhau trong cả hai trường hợp vì máy chủ chưa bao giờ thấy một danh tính máy khách khác, chỉ thấy một đường đi khác. Đó là cơ chế trong một cặp yêu cầu có thể lặp lại.
Nếu mục tiêu là xem trang có nhận ra bạn mà không có trạng thái đã lưu hay không, hãy xóa dữ liệu của trang đó và lặp lại. Nếu trang vẫn nhận ra bạn, những nghi phạm tiếp theo là tài khoản đã đăng nhập, một liên kết bạn đã theo, hoặc đặc điểm trình duyệt chứ không phải cookie.
Xóa đúng trạng thái, không phải mạng
Việc xóa kho lưu của một trang thuộc các điều khiển của chính trình duyệt, và nó thường đăng xuất bạn hoặc đặt lại tùy chọn như một tác dụng phụ. Nó không xóa tài khoản hay các bản ghi mà dịch vụ đã giữ; những thứ đó cần quy trình riêng của dịch vụ.
Các hạn chế giữa các trang giải quyết một phần khác của vấn đề. Trình duyệt có thể chặn hoặc phân vùng kho lưu mà các dịch vụ nhúng nếu không sẽ chia sẻ giữa các trang, trong khi đăng nhập bên thứ nhất vẫn hoạt động. Vì vậy đăng nhập thành công không phải bằng chứng rằng theo dõi giữa các trang đang hoạt động.
Cửa sổ riêng tư là một công cụ khác với phạm vi hẹp hơn mọi người tưởng. Các trang vẫn có thể đặt cookie trong phiên, và đăng nhập vẫn nhận diện tài khoản. Chính việc kết thúc phiên riêng tư mới loại bỏ trạng thái tạm thời, nghĩa là phải đóng mọi cửa sổ riêng tư chứ không phải một tab.
Cuối cùng, hãy coi nhận dạng bằng dấu vân tay là một khả năng chứ không phải lời giải thích đầu tiên. Đặc điểm thiết bị và trình duyệt có thể liên kết các lần truy cập mà không có cookie nào được lưu, và việc xóa kho lưu sẽ không đụng tới chúng. Hãy kiểm tra các nguyên nhân đơn giản trước, sau đó mở rộng điều tra, và ghi lại trạng thái nào bạn đã thay đổi để lần so sánh tiếp theo có ý nghĩa.