Tiện ích Google +1 là JavaScript chạy trên trang web của bạn đang xây dựng iframe
. Tiện ích JavaScript này đang chạy trong ngữ cảnh của trang web của bạn và do đó không bị ràng buộc bởi Quy tắc kế thừa nguồn gốc cho iframe . Do đó, tiện ích JavaScript này có thể đặt bất kỳ sự kiện DOM nào mà nó muốn trên trang mẹ mặc dù có vẻ như nó chỉ đơn giản iframe
.
Một điều nữa, tại sao Google sử dụng một iframe
? Tại sao không chỉ tạo một div
trên trang? Vâng, vì liên kết bắt nguồn từ iframe
, mã thông báo CSRF (giả mạo yêu cầu chéo trang web) có thể được nhúng trong yêu cầu và trang web mẹ không thể đọc mã thông báo này và giả mạo yêu cầu. Vì vậy, đây iframe
là một biện pháp chống CSRF dựa trên các quy tắc Kế thừa nguồn gốc để bảo vệ chính nó khỏi cha mẹ độc hại.
Từ góc độ tấn công, nó giống như XSS (kịch bản chéo trang) hơn là UI-Redress. Bạn đang cấp cho Google quyền truy cập vào trang web của bạn và họ có thể chiếm quyền điều khiển cookie của người dùng hoặc thực hiện XmlHttpRequests
đối với trang web của bạn nếu họ chọn (nhưng sau đó mọi người sẽ kiện họ vì độc hại và giàu có).
Trong tình huống này, bạn phải tin tưởng Google, nhưng Google không tin tưởng bạn.
Có nhiều cách để giảm thiểu tác động của quyền riêng tư đối với các lỗi web này .
<iframe>
mà bạn đề xuất có thể đúng (và giải thích cách có thể). Nhưng có vẻ như đây không phải là trường hợp, từ việc kiểm tra DOM. Và nó sẽ tiết lộ tên và địa chỉ Gmail của tôi cho các bậc cha mẹ độc hại (trừ khi được gói trong một giâyiframe
)!