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

Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe Merentas Subdomain?

Barbara Streisand
Barbara Streisandasal
2024-11-11 10:04:02177semak imbas

How Can I Access the Parent URL from an Iframe Across Subdomains?

Mengakses URL Induk daripada iframe Merentas Subdomain

Mengakses URL halaman induk dari dalam iframe biasanya mudah jika kedua-dua halaman berada pada domain yang sama. Walau bagaimanapun, apabila iframe dan halaman induk berada pada subdomain yang berbeza, sekatan skrip merentas domain menghalang akses terus ke URL induk.

Sekatan Skrip Rentas Tapak

Kerentanan skrip merentas tapak berlaku apabila skrip hasad pada satu tapak web dapat mengakses dan melaksanakan kod pada tapak web lain. Dasar keselamatan penyemak imbas menguatkuasakan sekatan ketat untuk menghalang kelemahan tersebut daripada mengeksploitasi data sensitif. Salah satu sekatan ini ialah skrip tidak boleh mengakses data daripada tapak web pada domain yang berbeza tanpa kebenaran yang jelas.

Subdomain dan Skrip Merentas Tapak

Sementara subdomain secara logiknya muncul berkaitan dengannya domain utama, dari sudut keselamatan, mereka dianggap sebagai entiti yang berasingan. Oleh itu, apabila iframe pada satu subdomain cuba mengakses URL halaman induk pada subdomain yang lain, penyemak imbas mentafsirkannya sebagai percubaan skrip merentas tapak dan menafikan akses.

Penyelesaian Alternatif

Jika keperluan adalah semata-mata untuk mendapatkan URL halaman utama (URL bar alamat penyemak imbas), penyelesaian adalah tersedia:

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

Kod ini menyemak sama ada iframe dan halaman induk berada pada subdomain yang berbeza. Jika ya, ia menggunakan sifat document.referrer untuk mendapatkan URL halaman yang dipautkan kepada iframe. Jika mereka tidak berada pada subdomain yang berbeza, ia menggunakan sifat document.location.href untuk mendapatkan semula URL halaman induk.

Nota:

  • tetingkap .parent.location dibenarkan kerana ia hanya merujuk objek Lokasi halaman induk, bukan sifat khususnya seperti href.
  • document.referrer mungkin tidak selalu mengembalikan URL dokumen yang mengandungi, terutamanya jika terdapat ubah hala atau halaman perantara yang terlibat dalam proses pemuatan iframe.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe Merentas Subdomain?. 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