Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan terbaik untuk pengesahan permintaan PHP dan penapisan input

Amalan terbaik untuk pengesahan permintaan PHP dan penapisan input

WBOY
WBOYasal
2023-08-07 19:40:461069semak imbas

Amalan terbaik untuk pengesahan permintaan PHP dan penapisan input

Amalan Terbaik untuk Pengesahan Permintaan PHP dan Penapisan Input

Petikan:
Apabila membangunkan sebarang aplikasi web, adalah penting untuk memastikan keselamatan data anda. Sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas, PHP menyediakan banyak alat berkuasa untuk mengesahkan dan menapis input pengguna. Artikel ini akan memperkenalkan beberapa amalan terbaik untuk membantu anda melaksanakan pengesahan permintaan dan keselamatan penapisan input dalam PHP.

  1. Menggunakan fungsi penapis
    PHP menyediakan satu set fungsi penapis terbina dalam yang boleh mengesahkan dan menapis data input pengguna dengan mudah. Fungsi penapis yang paling biasa digunakan ialah filter_var() dan filter_input(). Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi penapis untuk mengesahkan dan menapis input e-mel pengguna:
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // 邮件地址有效,继续处理
} else {
    // 邮件地址无效,显示错误消息给用户
}

Dalam contoh di atas, fungsi filter_input() digunakan untuk mendapatkan pengguna bernama 'e-mel' dalam POST yang diserahkan permintaan Masukkan data. Fungsi penapis FILTER_SANITIZE_EMAIL digunakan untuk mengalih keluar aksara haram dalam alamat e-mel. Fungsi filter_var() digunakan untuk mengesahkan sama ada alamat e-mel yang ditapis adalah sah.

  1. Pengesahan Ungkapan Biasa
    Ungkapan biasa ialah alat yang berkuasa untuk pengesahan dan penapisan input yang lebih kompleks. Fungsi preg_match() PHP boleh digunakan untuk melaksanakan pemadanan ungkapan biasa pada input pengguna. Berikut ialah contoh yang menunjukkan cara menggunakan ungkapan biasa untuk mengesahkan input nombor telefon pengguna:
$phone = $_POST['phone'];

$pattern = "/^(+d{1,3}-)?d{10}$/";

if (preg_match($pattern, $phone)) {
    // 电话号码有效,继续处理
} else {
    // 电话号码无效,显示错误消息给用户
}

Dalam contoh di atas, corak ungkapan biasa digunakan untuk mengesahkan bahawa nombor telefon yang dimasukkan oleh pengguna mematuhi format yang ditentukan. Jika perlawanan berjaya, nombor telefon adalah sah.

  1. Cegah Skrip Merentas Tapak (XSS)
    Skrip silang tapak (XSS) ialah jenis serangan web yang biasa di mana penyerang mengeksploitasi pengesahan dan penapisan input yang tidak betul untuk memasukkan kod skrip berniat jahat. Untuk mengelakkan serangan XSS, input pengguna boleh dikodkan menggunakan fungsi htmlspecialchars() PHP. Di bawah ialah contoh yang menunjukkan cara menggunakan fungsi htmlspecialchars() untuk mengekod komen yang diserahkan pengguna:
$comment = $_POST['comment'];

$encoded_comment = htmlspecialchars($comment);

// 将编码后的评论存储在数据库中

Dalam contoh di atas, fungsi htmlspecialchars() akan melepaskan tag HTML dan aksara khas untuk memastikan input pengguna tidak ditafsirkan Ditafsirkan sebagai kod HTML.

  1. Cegah Serangan Suntikan SQL
    Serangan suntikan SQL ialah satu lagi jenis serangan web yang biasa di mana penyerang memanfaatkan pengesahan dan penapisan input yang tidak betul untuk melaksanakan pernyataan SQL yang berniat jahat. Untuk mengelakkan serangan suntikan SQL, anda boleh menggunakan pernyataan PHP yang disediakan atau pertanyaan berparameter. Berikut ialah contoh yang menunjukkan cara menggunakan pernyataan yang disediakan untuk melaksanakan pertanyaan SQL:
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(":username", $username);

$username = $_POST['username'];

$stmt->execute();

Dalam contoh di atas, dengan mengikat pembolehubah input pengguna dengan parameter yang dipratentukan, anda memastikan bahawa input dilepaskan dengan betul dan Penapisan untuk mengelakkan suntikan SQL serangan.

Kesimpulan:
Dengan mengikuti amalan terbaik di atas, anda boleh melaksanakan pengesahan permintaan dan keselamatan penapisan input dalam PHP. Menggunakan fungsi penapis, pengesahan ungkapan biasa dan mencegah serangan suntikan XSS dan SQL adalah langkah penting untuk memastikan keselamatan data input pengguna. Ingat bahawa pengesahan dan penapisan input pengguna adalah komponen penting dalam keselamatan aplikasi web, dan adalah penting untuk kekal berwaspada pada setiap masa.

Atas ialah kandungan terperinci Amalan terbaik untuk pengesahan permintaan PHP dan penapisan input. 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