Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe pada Subdomain Berbeza?

Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe pada Subdomain Berbeza?

DDD
DDDasal
2024-11-17 15:49:02510semak imbas

How Can I Access the Parent URL from an Iframe on a Different Subdomain?

Mengakses URL Induk daripada Iframe

Apabila bekerja dengan iframe, selalunya perlu untuk mengakses URL halaman induk dari dalam iframe. Walau bagaimanapun, ini boleh menjadi masalah jika iframe dan halaman induk tidak berada pada subdomain yang sama.

Skrip dan Subdomain Merentas Tapak

Skrip merentas tapak (XSS ) berlaku apabila skrip berniat jahat dilaksanakan pada halaman web yang dipercayai oleh pengguna. Langkah keselamatan yang lebih ketat telah dilaksanakan untuk menghalang XSS, dan langkah ini diperluaskan kepada iframe.

Jika iframe dan halaman induk tidak berada pada subdomain yang sama, walaupun berada pada domain yang sama, akses tersebut dianggap skrip merentas tapak. Oleh itu, mendapatkan semula URL halaman induk daripada iframe menggunakan teknik seperti:

parent.document.location
parent.window.location

akan mengakibatkan ralat dinafikan akses.

Mengakses URL Penyemak Imbas

Walaupun mustahil untuk mengakses terus URL halaman induk, terdapat penyelesaian untuk mendapatkan URL pelayar, iaitu URL halaman utama. Untuk melakukan ini:

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;

Kod ini menyemak sama ada iframe dan halaman induk tidak berada pada URL yang sama. Jika ia berbeza, ia menggunakan document.referrer untuk mendapatkan URL halaman yang dipautkan ke iframe. Jika tidak, ia menggunakan document.location.href untuk mendapatkan URL dokumen semasa (iframe).

Nota Tambahan

  • window.parent.location ialah dibenarkan, mengelakkan ralat keselamatan.
  • document.referrer mungkin tidak selalu mengembalikan URL yang betul dalam sesetengah kes.
  • dokumen.lokasi merujuk kepada URL dokumen iframe.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe pada Subdomain Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn