Tôi có trang https (https://example.com/main.php) có khung nội tuyến có nguồn không phải https (http://example.com/inner.php). Cả hai tệp trên cùng một máy chủ - chỉ một tệp được truy cập bằng https và tệp kia không có. Tôi cần trang phi https để có thể thực thi javascript trên https main.php
trang sử dụng mã như parent.myfunction()
Cho phép HTTP iFrame gọi JavaScript trên khung cha mẹ HTTPS
Tuy nhiên, khi tôi cố gắng này, tôi nhận được lỗi sau:
Unsafe JavaScript attempt to access frame with URL https://example.com/main.php from frame with url http://example.com/inner.php . Domains, protocols and ports must match.
tôi đã thiết document.domain = 'example.com'
trên cả hai tập tin và tôi nghĩ rằng sẽ sửa chữa nó, tuy nhiên, nó không. Có cách nào để cho phép khung thực thi các javascripts trên khung chính và ngược lại không? Nếu vậy, các tác động an ninh của điều này là gì?
PS: Đối với những người trong số các bạn đề xuất chỉ sử dụng https hoặc http cho cả hai trang, tôi đang xem xét điều đó. Tuy nhiên, do các quá trình xảy ra trong trang iframe, điều này có thể không phải là một tùy chọn khả thi do các sự cố tải máy chủ.
Ví dụ của bạn không hoạt động: không thể sử dụng tên miền "my.paypal.com" vì miền _whole_ (với tất cả tên miền phụ hiện có và không tồn tại) thuộc về paypal. Vì vậy, theo ý kiến của tôi, đây không phải là lý do cho giới hạn bảo mật này. Lý do là như nhau, như thể bạn muốn tải bất kỳ nội dung nào thông qua http tại một trang web https. – rudi
@Rudolf Tôi không nghĩ rằng bạn đã hoàn toàn hiểu những gì tôi đã nói. Kẻ tấn công trả về một trang có hai khung * bên trong nó. Một khung có chứa https://paypal.com bona fide. Khác chứa javascript độc hại. JavaScript độc hại "được gửi từ paypal.com" - nhưng thực sự, tôi đã chặn yêu cầu và trả lại bất kỳ nội dung nào tôi muốn (có thể vì nó không phải là kết nối an toàn).Vì vậy, hai khung hình "vượt qua kiểm tra cùng nguồn gốc", nhưng kết quả là thảm họa. – Borealid