2012-11-19 43 views
10

Khi tôi đăng nhập vào một trang web, đó là "hệ thống học tập" tại trường đại học của tôi, tôi thấy rằng tôi không thể mở một tab mới với cùng một trang web đang mở. Khi tôi làm như vậy, bằng cách nào đó trang web nhận thức và hiển thị thông báo sau?Làm cách nào để trang web này biết rằng tôi đang mở một tab khác?

Session already running?

Làm thế nào trên trái đất không trang web biết những gì các tab tôi đã mở trên máy tính của tôi? Theo tôi biết, mã front-end không được có bất kỳ quyền truy cập nào vào thông tin trình duyệt riêng tư của tôi. Trang web này có thể truy cập thông tin nào để xác định rằng tôi đã mở một tab khác?

Tôi đang truy cập trang web bằng máy tính cá nhân và trang web đang truy cập không có trên mạng cục bộ, trang này đang được truy cập qua internet. Do đó không có phần mềm giám sát nội bộ nào có thể gây ra điều này. Tôi đang sử dụng Google Chrome 24 Beta dành cho Mac.

+2

Làm cách nào để mở tab mới? Có thể họ đang kiểm tra các liên kết giới thiệu và khi nó thấy bạn không có hoặc bạn đang bắt nguồn từ trang và chuyển sang trang khác không có trong "Chuỗi", nó sẽ trả về lỗi. Nó cũng có thể sử dụng một biến session/ip kết hợp theo dõi trang bạn đang xem. –

+0

Bạn có thấy thông báo này ngay sau khi bạn mở một tab mới hoặc sau khi thực hiện một số hành động trong tab mới không? Bạn có thấy nó nếu bạn mở một tab thông qua tùy chọn "Mở liên kết trong tab mới" không? –

+0

Tôi thấy nó ngay sau khi tôi mở một tab mới. – element119

Trả lời

4

Một cách để thực hiện việc này là thông qua cookie và id. Thứ nhất, bạn đã đăng nhập vào trang web và có một phiên trên đó. Điều này được quản lý bằng cookie; bất cứ khi nào bạn truy cập một trang trên trang web, trình duyệt của bạn sẽ gửi một cookie thường chứa một số loại id. Bằng cách đó, máy chủ có thể xác định bất kỳ yêu cầu nào đến từ bạn, thực sự là từ bạn. Vì vậy, trong trường hợp này, cả tab gốc và tab mới của bạn sẽ gửi cùng một cookie.

Thứ hai, nó cũng có thể thêm id khác, khác (gọi là id trang), vào bất kỳ liên kết hoặc biểu mẫu nào bạn gửi trên trang web. Vì vậy, một biểu mẫu trên một trang có thể chứa id 1234 và bất kỳ liên kết nào cũng sẽ chứa id đó. Mỗi trang mới bạn truy cập có thể chứa một id mới. Vì vậy, bất cứ lúc nào, trang web biết rằng yêu cầu tiếp theo từ trình duyệt của bạn (được xác định bởi các cookie) cũng phải chứa id khác này. Nếu bạn điều hướng xung quanh trang web theo cách thông thường, hãy nhấp vào liên kết, gửi biểu mẫu, điều này sẽ đúng và tất cả sẽ tốt.

trường hợp khi yêu cầu tiếp theo của bạn sẽ KHÔNG nộp mong đợi, id thứ hai là:

  1. bạn nhấn nút quay lại (bạn sẽ được gửi một id trang cũ)
  2. bạn mở một tab mới (điều này phụ thuộc vào trình duyệt, nhưng nếu nó mở trang cùng bạn đã có trên trong tab ban đầu, nó sẽ gửi các dòng trang id, không phải là id trang tiếp theo, mà máy chủ hy vọng)

Hoặc cách, bạn gửi lại nhiệm vụ với một id trang máy chủ không mong đợi và nó có thể làm cho một đoán tốt nhất như những gì bạn đã làm.

+1

Theo hiểu biết tốt nhất của tôi - Chrome chia sẻ phiên/cookie giữa các tab. –

Các vấn đề liên quan