Bagaimana untuk mengesahkan input berformat JSONP menggunakan ungkapan biasa dalam PHP

PHPz
Lepaskan: 2023-06-24 10:56:01
asal
834 orang telah melayarinya

Dengan pembangunan aplikasi web yang berterusan, AJAX (Asynchronous JavaScript and XML) menjadi semakin biasa. JSONP (JSON dengan Padding) ialah protokol interaksi AJAX umum. Ia membenarkan permintaan data daripada pelayan domain yang berbeza dan biasanya digunakan dalam JavaScript.

Dalam PHP, jika anda perlu mengesahkan input berformat JSONP daripada domain lain, anda perlu menghuraikannya dengan betul. Proses ini boleh dicapai menggunakan ungkapan biasa. Dalam artikel ini, kami akan meneroka cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan input dalam format JSONP.

Input dalam format JSONP

Sebelum membincangkan secara mendalam cara mengesahkan format JSONP, mari kita perkenalkan secara ringkas input dalam format JSONP.

Apabila klien menggunakan format JSONP untuk mendapatkan data, ia akan membuat permintaan kepada pelayan Selepas menerima permintaan, pelayan akan membungkus data dalam fungsi panggil balik dan menghantarnya semula kepada klien. Dengan cara ini, pelanggan boleh melakukan pemprosesan data apabila menerima fungsi panggil balik.

Sebagai contoh, jika pelanggan meminta pelayan untuk mendapatkan data pengguna bernama "klien" melalui JSONP, ia akan menghantar permintaan yang serupa dengan kod berikut:

https://example.com/user.php?callback=client
Salin selepas log masuk

Pelayan perlu mendapatkan data pengguna bernama "klien" mengikut permintaan Nama fungsi panggil balik panggilan balik membungkus data pengguna dalam panggilan fungsi dan mengembalikan kod JavaScript yang sepadan. Contohnya:

client({"name":"Tom","age":18,"gender":"male"});
Salin selepas log masuk

Jika nama fungsi panggil balik mengandungi aksara yang menyalahi undang-undang atau dalam format yang salah, data tidak akan diproses dengan betul. Oleh itu, nama fungsi panggil balik perlu disahkan pada bahagian pelayan.

Gunakan ungkapan biasa untuk mengesahkan input dalam format JSONP

Di bawah kami akan menggunakan contoh untuk menggambarkan cara menggunakan ungkapan biasa untuk mengesahkan input dalam format JSONP.

Langkah pertama ialah mendapatkan nama fungsi panggil balik. Kita perlu mendapatkan nilai panggil balik daripada URL yang diminta. Dalam PHP, kita boleh mendapatkan parameter URL melalui $_GET.

$callback = isset($_GET['callback']) ? $_GET['callback'] : '';
Salin selepas log masuk

Langkah kedua ialah mengesahkan nama fungsi panggil balik. Kita perlu memastikan ia hanya mengandungi aksara yang dibenarkan. Dalam JSONP, hanya aksara abjad angka dan garis bawah dibenarkan dalam nama fungsi panggil balik. Kami boleh menggunakan ungkapan biasa untuk mengesahkan.

if (preg_match('/^[a-zA-Z0-9_]+$/', $callback)) {
    // 正确格式的回调函数名称
} else {
    // 非法的回调函数名称
}
Salin selepas log masuk

Ungkapan biasa di atas boleh ditafsirkan sebagai:

  1. Mula: ^ bermaksud permulaan rentetan padanan.
  2. String: [a-zA-Z0-9_]+ bermaksud memadankan huruf besar dan huruf kecil, nombor dan garis bawah sekurang-kurangnya sekali.
  3. Tamat: $ menunjukkan penghujung rentetan yang dipadankan.

Ungkapan biasa ini hanya sepadan dengan nama fungsi panggil balik yang mengandungi aksara alfanumerik dan garis bawah, sambil mengabaikan aksara lain. Jika nama fungsi panggil balik mengandungi aksara lain, pengesahan akan gagal.

Kesimpulan

Dalam PHP, sangat mudah untuk menggunakan ungkapan biasa untuk mengesahkan input dalam format JSONP. Anda hanya perlu mendapatkan nama fungsi panggil balik dan mengesahkannya menggunakan ungkapan biasa. Ini membantu memastikan tiada masalah memproses input berformat JSONP apabila pelayan menerima permintaan.

Walau bagaimanapun, perlu diingatkan bahawa ungkapan biasa tidak menjamin keselamatan data sepenuhnya. Oleh itu, apabila memproses data input, kami juga perlu melakukan semakan keselamatan lain, seperti panjang input, suntikan SQL atau serangan XSS, dsb.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan input berformat JSONP menggunakan ungkapan biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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!