Làm hỏng siêu liên kết trong Word và Excel

Người ta sẽ nghĩ rằng khi các siêu liên kết được mở từ tài liệu Word / Excel, trình duyệt tiêu chuẩn sẽ được khởi động với URL mong muốn. Thật kỳ lạ, đây không phải là trường hợp - dẫn đến các tác dụng phụ khó chịu và làm cho các liên kết đến các trang được bảo vệ bằng phiên / cookie dựa trên đăng nhập trong các chương trình văn phòng đã nói là không thể.


Điều này là do mô-đun được Microsoft đặt tên là "Tác nhân người dùng: Microsoft Office Existence Discovery", tải trước liên kết trong nền và theo dõi bất kỳ chuyển hướng nào. Vấn đề có thể được tái tạo như sau: Đầu tiên bạn tạo hai tệp có tên "loggedin.php" (trang ở trạng thái đã đăng nhập) và "login.php" (trang để đăng nhập):

5bcff34c5cecc130a0ee

5bcff34c5cecc130a0ee

Sau khi gọi trực tiếp "loggedin.php", bạn sẽ đến thẳng "login.php" ở trạng thái ban đầu, nơi cookie "logged_in" được thiết lập ngay lập tức. Sau khi gọi lại "loggedin.php", bạn nhận được thông báo "bạn đã đăng nhập trong ". Nếu bạn liên kết đến" loggedin.php "trong Word hoặc Excel (phiên bản 2007 trở lên), bạn luôn truy cập trực tiếp vào" login.php ", bất kể bạn đã đăng nhập hay chưa.

Các chương trình Office khởi động một cấu phần của Internet Explorer trong nền để kiểm tra xem URL có tồn tại hay không. Bất kỳ chuyển hướng nào cũng được theo dõi đến cuối và URL cuối cùng không có chuyển hướng (trong trường hợp của chúng tôi là "login.php") được trả lại và gọi bằng trình duyệt tiêu chuẩn. Một giải pháp khả thi là chặn và chặn lệnh gọi nền trên trang đầu tiên:

5bcff34c5cecc130a0ee

Trở lại