Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan Terbaik untuk Menapis dan Mengesahkan Parameter URL dengan PHP

Amalan Terbaik untuk Menapis dan Mengesahkan Parameter URL dengan PHP

WBOY
WBOYasal
2023-07-07 08:49:06906semak imbas

Amalan terbaik untuk menapis dan mengesahkan parameter URL menggunakan PHP

Dalam proses membangunkan aplikasi web, parameter URL sering digunakan. Cara menapis dan mengesahkan parameter ini dengan betul adalah langkah penting dalam memastikan keselamatan aplikasi anda. Artikel ini akan memperkenalkan beberapa amalan terbaik untuk menapis dan mengesahkan parameter URL dalam PHP dan memberikan contoh kod yang sepadan.

  1. Menapis Parameter URL

Parameter URL mungkin mengandungi input pengguna yang tidak dipercayai dan oleh itu perlu ditapis untuk mengelakkan penghantaran kod berniat jahat atau input haram.

Berikut ialah contoh kod untuk menapis parameter URL menggunakan fungsi filter_input:

// 获取GET参数
$param = filter_input(INPUT_GET, 'param', FILTER_SANITIZE_ENCODED);

// 获取POST参数
$param = filter_input(INPUT_POST, 'param', FILTER_SANITIZE_ENCODED);

Dalam kod di atas, parameter URL yang ditentukan diperolehi melalui fungsi filter_input, dan parameter dikodkan URL menggunakan penapis FILTER_SANITIZE_ENCODED. Penapis ini akan menukar aksara khas dalam parameter kepada entiti HTML yang sepadan supaya ia boleh dipaparkan dengan selamat pada halaman.

  1. Sahkan Parameter URL

Selain parameter penapisan, parameter juga perlu disahkan untuk memastikan ia memenuhi keperluan khusus. Berikut ialah beberapa kaedah pengesahan parameter URL biasa:

  • Sahkan sama ada ia adalah integer:
$param = filter_input(INPUT_GET, 'param', FILTER_VALIDATE_INT);
if($param === false){
    // 参数无效
} else {
    // 参数有效,可以继续处理
}
  • Sahkan jika ia alamat e-mel:
$email = filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL);
if($email === false){
    // 邮件地址无效
} else {
    // 邮件地址有效,可以继续处理
}
  • Sahkan jika ia URL:
  • Vrrifyee jika ia adalah tarikh:
    $url = filter_input(INPUT_GET, 'url', FILTER_VALIDATE_URL);
    if($url === false){
        // URL无效
    } else {
        // URL有效,可以继续处理
    }
  • Dalam kod di atas, gunakan pengesah FILTER_VALIDATE_INT untuk mengesahkan sama ada parameter itu adalah integer, gunakan pengesah FILTER_VALIDATE_EMAIL untuk mengesahkan sama ada parameter tersebut adalah alamat e-mel yang sah, gunakan pengesah FILTER_VALIDATE_URL untuk mengesahkan sama ada parameter ialah URL yang sah dan gunakan pengesah FILTER_VALIDATE_REGEXP untuk mengesahkan Sama ada parameter sepadan dengan corak ungkapan biasa yang ditentukan.

Gabungan penapisan dan pengesahan

  1. Biasanya kita perlu menapis dan mengesahkan parameter URL pada masa yang sama. Berikut ialah contoh kod yang menggabungkan penapisan dan pengesahan parameter URL:
  2. $date = filter_input(INPUT_GET, 'date', FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^d{4}-d{2}-d{2}$/")));
    if($date === false){
        // 日期无效
    } else {
        // 日期有效,可以继续处理
    }
Dalam kod di atas, parameter pertama kali ditapis menggunakan penapis FILTER_SANITIZE_ENCODED dan kemudian disahkan menggunakan pengesah FILTER_VALIDATE_INT. Jika parameter melepasi kedua-dua penapisan dan pengesahan, pemprosesan parameter boleh diteruskan.

Ringkasan

Menapis dan mengesahkan parameter URL adalah penting untuk memastikan aplikasi web anda selamat. Melalui penggunaan penapis dan pengesah yang munasabah, penghantaran kod berniat jahat dan penggunaan input haram dapat dicegah dengan berkesan, dan keselamatan aplikasi boleh dipertingkatkan. Dalam pembangunan sebenar, pembangun harus memilih penapis dan pengesah secara munasabah berdasarkan keperluan perniagaan tertentu, dan menggabungkannya dengan mekanisme pengendalian ralat yang sesuai untuk memberikan pengalaman dan keselamatan pengguna yang lebih baik.

Di atas adalah pengenalan kepada amalan terbaik untuk menapis dan mengesahkan parameter URL menggunakan PHP. Saya harap ia akan membantu kerja pembangunan anda.

Atas ialah kandungan terperinci Amalan Terbaik untuk Menapis dan Mengesahkan Parameter URL dengan PHP. 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