Cara PHP melaksanakan interaksi data merentas domain

WBOY
Lepaskan: 2023-06-27 08:24:01
asal
1162 orang telah melayarinya

Dengan perkembangan berterusan teknologi rangkaian moden, aplikasi Web telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian manusia. Walau bagaimanapun, disebabkan sekatan keselamatan aplikasi web dan sekatan dasar asal yang sama penyemak imbas, aplikasi ini menghadapi beberapa kesukaran apabila berinteraksi dengan data. Salah satu masalah yang paling biasa ialah interaksi data merentas domain.

Dalam interaksi data merentas domain, aplikasi web perlu mendapatkan dan mengendalikan data daripada sumber yang berbeza. Walaupun teknologi merentas domain seperti CORS (Cross-Origin Resource Sharing) dan JSONP (JSON with Padding) sudah disokong dalam penyemak imbas moden, dalam beberapa kes, PHP, sebagai bahasa back-end yang biasa digunakan dalam pembangunan Web, masih perlu memainkan peranan yang sangat penting untuk mencapai interaksi data merentas domain.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai interaksi data merentas domain dan membincangkan beberapa penyelesaian biasa.

Jenis interaksi data merentas domain

Sebelum mula menggunakan PHP untuk melaksanakan interaksi data merentas domain, anda mesti terlebih dahulu memahami jenis interaksi data merentas domain.

CORS

CORS (Perkongsian Sumber Silang Asal) ialah mekanisme yang disokong oleh penyemak imbas moden yang membolehkan aplikasi web mengakses data mereka daripada sumber yang berbeza. Permintaan merentas domain CORS memberitahu penyemak imbas sama ada permintaan dibenarkan melalui pengepala HTTP standard yang dipratakrifkan. Untuk permintaan silang asal CORS, pelayan perlu menambah pengepala respons khusus pada respons untuk memberitahu pelayar permintaan yang boleh diterima.

JSONP

JSONP (JSON dengan Padding) ialah teknologi yang boleh memintas dasar asal yang sama penyemak imbas Ia mengambil kesempatan daripada fakta bahawa atribut src teg tidak dihadkan oleh dasar asal yang sama. Permintaan JSONP tidak dianggap sebagai permintaan merentas domain oleh penyemak imbas, jadi mereka boleh mengakses data secara langsung daripada domain lain.

Prinsip permintaan JSONP ialah menambahkan teg skrip pada halaman dan atribut src teg menghala ke URL. URL disediakan oleh pelayan, dan ia mengembalikan sekeping kod JavaScript Apabila kod tersebut dilaksanakan, fungsi panggil balik yang ditentukan akan dipanggil dan data yang dikembalikan oleh pelayan akan dihantar ke fungsi panggil balik sebagai parameter.

JSONP dicirikan oleh kesederhanaan dan kemudahan penggunaan, tetapi terdedah kepada XSS (serangan skrip merentas tapak).

Lain-lain

Selain itu, terdapat beberapa teknologi interaksi data merentas domain lain, seperti imej lutsinar (Imej Lutsinar), pemesejan silang bingkai (Pemesejan Dokumen Merentas), dsb. Walau bagaimanapun, teknologi ini tidak cukup matang dan mempunyai keadaan penggunaan yang keras, jadi ia tidak banyak digunakan dalam pembangunan sebenar.

PHP merealisasikan interaksi data merentas domain

Dalam pembangunan sebenar, teknologi merentas domain yang berbeza boleh digunakan bergantung pada situasi. Beberapa teknologi rentas domain PHP biasa akan diperkenalkan di bawah.

CORS

Menggunakan CORS dalam PHP memerlukan menetapkan pengepala respons. Contohnya, untuk membenarkan semua nama domain mengakses data pada pelayan, anda boleh menggunakan kod berikut:

header("Access-Control-Allow-Origin: *");
Salin selepas log masuk

Jika anda hanya membenarkan nama domain tertentu mengakses data pada pelayan, anda boleh menggunakan kod berikut:

header("Access-Control-Allow-Origin: http://example.com");
Salin selepas log masuk

di mana , http://example.com ialah nama domain yang membenarkan akses kepada data pada pelayan.

Perlu diingatkan bahawa jika anda perlu membawa kuki untuk akses merentas domain, anda juga perlu menetapkan Access-Control-Allow-Credentials kepada benar di sebelah pelayan, contohnya:

header('Access-Control-Allow-Origin: http://example.com');
header('Access-Control-Allow-Credentials: true');
Salin selepas log masuk

JSONP

Tidak seperti CORS, Permintaan merentas domain JSONP Ini dilakukan dengan menambahkan teg skrip. Dalam PHP, anda perlu membungkus data ke dalam sekeping kod JavaScript dan memanggil fungsi panggil balik apabila mengembalikan data mengikut nama fungsi panggil balik yang disediakan oleh klien. Contohnya:

<?php
    $data = array("name" => "John", "age" => 30);
    $callback = $_GET['callback'];
    echo $callback . '(' . json_encode($data) . ')';
?>
Salin selepas log masuk

Dalam kod di atas, $_GET['panggilan balik'] mendapat nama fungsi panggil balik yang disediakan oleh pelanggan.

Perlu diingatkan bahawa apabila pelayan mengembalikan data, ia mesti membungkus data dengan betul ke dalam sekeping kod JavaScript dan memanggil fungsi panggil balik, jika tidak, pelanggan tidak akan dapat menerima data dengan betul.

Ringkasan

PHP, sebagai bahasa back-end yang biasa digunakan, menyediakan pelbagai penyelesaian pertukaran data merentas domain. Dalam pembangunan sebenar, penyelesaian yang sesuai harus dipilih berdasarkan keperluan khusus. Perlu diingatkan bahawa isu keselamatan mesti diberi perhatian apabila berurusan dengan interaksi data merentas domain untuk mengelakkan isu keselamatan seperti serangan skrip merentas tapak.

Atas ialah kandungan terperinci Cara PHP melaksanakan interaksi data merentas domain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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