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

Người ta thường kỳ vọng rằng việc mở các siêu liên kết từ bên trong tài liệu Word/Excel sẽ tự động mở trình duyệt mặc định với URL mong muốn. Tuy nhiên, điều kỳ lạ là thực tế lại không như vậy – dẫn đến những tác dụng phụ không mong muốn và khiến việc truy cập các trang được bảo vệ bằng đăng nhập dựa trên phiên hoặc cookie trở nên bất khả thi trong các chương trình Office này.


Thủ phạm là mô-đun có tên “User Agent: Microsoft Office Existence Discovery” của Microsoft, mô-đun này tải trước liên kết trong nền và theo dõi mọi chuyển hướng. Vấn đề có thể được tái hiện như sau: Đầu tiên, tạo hai tệp có tên "loggedin.php" (trang khi đă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ẽ truy cập trực tiếp vào "login.php" ở trạng thái ban đầu, nơi cookie "logged_in" được đặt 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”. Nếu bạn liên kết đến "login.php" trong Word hoặc Excel (từ phiên bản 2007), bạn sẽ luôn truy cập trực tiếp vào "login.php", bất kể bạn đã đăng nhập trước đó hay chưa.

Các chương trình Office khởi động một thành phần Internet Explorer ở chế độ nền để kiểm tra xem URL có tồn tại hay không. Mọi chuyển hướng 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ả về và truy cập bằng trình duyệt tiêu chuẩn. Một giải pháp khả thi là chặn và chặn cuộc gọi nền trên trang đầu tiên:

5bcff34c5cecc130a0ee

Trở lại