js menetapkan document.domain untuk mencapai kemahiran analisis_javascript mata perhatian merentas domain

WBOY
Lepaskan: 2016-05-16 15:58:09
asal
1504 orang telah melayarinya

Contoh artikel ini menganalisis perkara yang perlu diperhatikan semasa menetapkan document.domain dalam js untuk mencapai pelaksanaan merentas domain. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

document.domain
Digunakan untuk mendapatkan nama domain halaman web semasa.
Contohnya, masukkan dalam bar alamat:

Salin kod Kod adalah seperti berikut:
javascript:alert(document.domain); bersih

Kami juga boleh menetapkan nilai pada atribut document.domain, tetapi terdapat sekatan Anda hanya boleh menetapkannya pada nama domain semasa atau nama domain asas.
Contohnya:

Salin kod Kod adalah seperti berikut:
javascript:alert(document.domain = "jb51.net"); //jb51 .net
javascript:alert(document.domain = "www.jb51.net"); //www.jb51.net

Tugasan di atas semuanya berjaya kerana www.jb51.net ialah nama domain semasa dan jb51.net ialah nama domain asas.

Tetapi tugasan berikut akan menyebabkan ralat "parameter tidak sah":

Salin kod Kod adalah seperti berikut:
javascript:alert(document.domain = "cctv.net"); //Parameter Tidak Sah
javascript:alert(document.domain = "www.jb51.net"); //Parameter tidak sah

Oleh kerana cctv.net dan www.jb51.net bukan nama domain semasa mahupun nama domain asas nama domain semasa, ralat akan berlaku.
Ini adalah untuk menghalang seseorang daripada mengubah suai document.domain secara berniat jahat untuk mencuri data merentas domain.

Gunakan document.domain untuk mencapai merentas domain:

Prasyarat: Kedua-dua nama domain ini mestilah tergolong dalam nama domain asas yang sama Dan protokol serta port yang digunakan mestilah konsisten, jika tidak document.domain tidak boleh digunakan untuk merentas domain

Javascript melarang dua atau lebih halaman daripada domain berbeza daripada saling beroperasi atas sebab keselamatan.
Halaman dari domain yang sama akan saling beroperasi tanpa sebarang masalah.

Sebagai contoh, dalam halaman web (a.html) aaa.com, halaman web (b.html) dalam bbb.com diperkenalkan menggunakan iframe.
Pada masa ini, kandungan dalam b.html boleh dilihat dalam a.html, tetapi javascript tidak boleh digunakan untuk mengendalikannya. Oleh kerana kedua-dua halaman tersebut tergolong dalam domain yang berbeza, sebelum beroperasi, js akan menyemak sama ada domain kedua-dua halaman adalah sama Jika ia sama, operasi akan dibenarkan Jika ia tidak sama, operasi akan ditolak.
Adalah mustahil untuk menukar a.html dan b.html ke domain yang sama menggunakan JS. Kerana nama domain asas mereka tidak sama. (Jika anda memaksa JS menukarnya ke dalam medan yang sama, "ralat parameter tidak sah" yang sama seperti di atas akan dilaporkan)

Jadi jika anda memperkenalkan halaman web lain dalam aaa.com ke dalam a.html, tidak akan ada masalah kerana domain adalah sama.

Terdapat satu lagi situasi, dua subdomain:

aaa.xxx.com
bbb.xxx.com

Halaman web (a.html) dalam aaa memperkenalkan halaman web (b.html) dalam bbb,
Pada masa ini, kandungan dalam b.html tidak boleh dimanipulasi dalam a.html.
Kerana document.domain adalah berbeza, satu ialah aaa.xxx.com dan satu lagi ialah bbb.xxx.com.

Pada masa ini, kita boleh menukar domain dua halaman kepada yang sama melalui Javascript,
Perlu menambah kedua-dua a.html dan b.html:

Salin kod Kod adalah seperti berikut:
document.domain = "xxx.com";

Dengan cara ini kedua-dua halaman boleh beroperasi antara satu sama lain. Maksudnya, "cross-domain" antara nama domain asas yang sama direalisasikan.

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!