Bây giờ, nhiều quản trị viên trang web sử dụng để thêm thuộc tính target = "_ blank" vào địa chỉ liên kết của trang, điều này ch...
Bây giờ, nhiều quản trị viên trang web sử dụng để thêm thuộc tính target = "_ blank" vào địa chỉ liên kết của trang, điều này chắc chắn là hành vi rất không an toàn. Không chỉ vậy, thuộc tính target = "_ blank" cũng sẽ làm phần lớn người sử dụng Internet gặp nguy cơ tấn công lừa đảo.
Đầu năm 2014, đã có rất nhiều chuyên gia nghiên cứu bảo mật cho biết, target = "_ blank" thuộc tính là một tài sản rất không an toàn. Và một số báo cáo an toàn về tài sản để thu hút sự chú ý của người dân, nhưng cũng đặc biệt đặt tiêu đề là rất bắt mắt.
Cơ chế dễ bị tổn thương
Khi người dùng nhấp vào một trang web có liên kết thuộc tính target = "_ blank" , trình duyệt sẽ tạo một tab riêng biệt để hiển thị liên kết đến nội dung. Tuy nhiên, lưu ý rằng tại thời điểm này, trình duyệt sẽ cho phép tab mới được tạo ra để truyền thông ngắn gọn với trang trước thông qua một trình duyệt API gọi là "window.opener" .
Tại thời điểm này, kẻ tấn công có thể là mã độc hại nhúng vào các trang Web mới mở, và sau đó phát hiện người dùng từ đó một trang web để nhảy qua, và cuối cùng sử dụng giao diện window.opener để lực lượng trang gốc để mở một địa chỉ URL mới .
Ví dụ: nếu người dùng nhấp vào một trang Facebook có liên kết với thuộc tính target = "_ blank" , kẻ tấn công có thể sử dụng trang Facebook giả mạo để thay thế trang Facebook gốc và sau đó yêu cầu người dùng nhập lại người dùng Tên và mật khẩu. Kết quả là kẻ tấn công đã thu được thành công dữ liệu chứng chỉ của người dùng mục tiêu.
Phạm vi ảnh hưởng
Terrag, Instagram, Facebook, Twitter và các trang mạng xã hội lớn khác sẽ bị ảnh hưởng bởi cuộc tấn công này.
Trong ba trang web mạng xã hội lớn, chỉ có Instagram hoàn toàn khắc phục vấn đề. Đối với Twitter, điều này chỉ có thể khi người dùng sử dụng trình duyệt Safari để truy cập các trang Twitter. Nhưng Google từ lâu đã được mở mà họ không quan tâm đến vấn đề này ...
Làm thế nào để khắc phục vấn đề này?
Điều này có nghĩa là gánh nặng của việc khắc phục sự cố sẽ rơi vào cơ thể của webmaster. Trên thực tế, cách đơn giản nhất để khắc phục sự cố là thêm thuộc tính rel = "noopener" vào tất cả liên kết đến trang web. Đối với Firefox, vì nó không hỗ trợ đầy đủ tài sản, nhà phát triển nên sử dụng thuộc tính rel = "noopenernoreferrer" để thay thế.
Xin lưu ý rằng khi bạn sử dụng giao diện window.open () mỗi lần mở cửa sổ trang mới, bảo mật của bạn có thể bị ảnh hưởng bởi API này, vì vậy đừng quên đặt lại thuộc tính " opener ".
Var newWnd = window.open ();
NewWnd.opener = null;
NewWnd.opener = null;
COMMENTS