Vụ tai nạn là do một lỗi thời gian gần đây phát hiện trong Chrome - và các trình duyệt WebKit * - cụ thể liên quan đến một trong hai (!) %%30%30
, %0%30
Hoặc %%300
như là một phần của URL, mà trong nội bộ tất cả kết thúc lên đại diện cho biểu tượng giống nhau: rỗng . Bạn có thể đọc thêm về lỗi ở đây .
Đây không phải là một lỗi ảnh hưởng đến hầu hết các liên kết, vì vậy bạn thường không phải lo lắng về việc di chuột qua các liên kết.
Lưu ý:
* Các trình duyệt WebKit khác bao gồm Safari, Opera, Steam Browser, Midori, S60 (Symbian), Trình duyệt Blackberry và trình duyệt của Playstation 3 - nhưng không phải Firefox, Internet Explorer hoặc Edge.
Chỉnh sửa: Lỗi này hiện đã được sửa trong Chrome 45.0.2454.101 khi Deltik chỉ ra.
Thêm về những gì xảy ra
Vấn đề liên quan đến trình chuẩn hóa URL , nó chạy ngay khi bạn di chuột qua một liên kết - có thể để hiển thị liên kết trên thanh trạng thái của trình duyệt và để tìm nạp trước trang web để tải nhanh hơn khi nhấp vào.
Đối với vai trò của trình chuẩn hóa URL:
Khi một URL được viết HTML
, nó có thể được viết dưới dạng /home
hoặc ../../home
, nhưng các trình duyệt cần dịch URL này sang một cái gì đó có giao thức và tên miền cũng vậy http://superuser.com/home
. Hơn nữa, URL có thể chứa các Thoát hiểm URL cần được dịch và các lối thoát này được mã hóa theo phần trăm , như thế nào %%30%30
. (Một danh sách đầy đủ hơn các URL thoát ở đây ).
Chức năng xử lý bản dịch URL này là những gì kết thúc sự cố, bởi vì nó nhận được đầu vào mà các nhà phát triển không mong đợi / xử lý.
Dưới đây là tóm tắt về thay đổi mã đã khắc phục sự cố:
Xử lý chính xác các lối thoát lồng nhau có vấn đề trong các đường dẫn URL.
Cụ thể, nếu không chú ý trong đầu vào dẫn đến URL đầu ra chứa chuỗi thoát mới, ví dụ: chuyển đổi đầu vào "%% 30% 30" thành "% 00", hãy thoát '%' hàng đầu thành "% 25" để đảm bảo đầu ra trình tự không được coi là một chuỗi thoát hợp lệ mới.
Điều này đảm bảo rằng việc chuẩn hóa cùng một URL lần thứ hai sẽ không thực hiện thay đổi đối với URL đó, điều này rất quan trọng để tránh sự cố và các lỗi khác ở nhiều nơi trong cả bản dựng gỡ lỗi và phát hành.