2013-07-01 25 views
7

Tôi muốn tạo kết nối postMessage an toàn (nguồn gốc an toàn), với khung nội tuyến được tạo khi chạy.JS - Cách sử dụng an toàn window.postMessage khi miền người gửi không xác định

Trạng thái hiện tại: Tôi có tập lệnh tạo iframe có miền cụ thể (domain.b.com trong ví dụ bên dưới). Tôi muốn iframe đó chỉ nhận tin nhắn từ tên miền chính (trang chứa tập lệnh của tôi). Vì miền gốc không xác định khi chạy, tôi đang nghĩ đến quy trình "Bắt tay" như được mô tả và minh họa bên dưới:

  1. Chờ cho khung nội tuyến được tải.
  2. Gửi bài đăngMessage từ miền gốc có nguồn gốc.
  3. Đặt nguồn gốc được phép sử dụng 1 nhận nguồn gốc

Edit: More Info:

  1. Mở máy chủ của tôi Tôi có một lĩnh danh sách trắng (ví dụ domain.a.com, any.domain.com, domain.b.com)
  2. Mục tiêu của tôi là tích hợp với một số khách hàng của tôi (ví dụ: domain.a.com, domain.b.com)
  3. Sau khi tích hợp, tôi muốn ngăn chặn hacke rs Đưa vào Iframe có thể nghe thông tin nhạy cảm qua postMessage
  4. Tôi muốn tránh kiểm tra danh sách trắng, tôi muốn cung cấp cho một số acessToken, nhưng không chắc luồng đúng là gì.

Ví dụ 1:

enter image description here


Ví dụ 2:

enter image description here

Đó có phải là cách đúng đắn để thực hiện nó?

+0

Tôi tin rằng bạn đã mắc lỗi trong ví dụ thứ hai của mình. Tôi nghĩ muốn nói 'postMessage ("any.domain.com", "domain.b.com") 'trong bài đăng đầu tiên của bạnMessage! – Mehran

+0

Bạn đúng ... xin lỗi vì điều đó –

+1

Có lý do tại sao bạn không chỉ cung cấp tên miền chính trong URL được tải trong iframe ('