PHP ialah bahasa pengaturcaraan yang berkuasa, manakala Oracle ialah sistem pengurusan pangkalan data yang digunakan secara meluas dalam aplikasi peringkat perusahaan. Apabila membangunkan aplikasi web, pengesahan dan penapisan data adalah sangat penting untuk memastikan data yang dimasukkan memenuhi jangkaan sambil melindungi pangkalan data daripada serangan berniat jahat. Artikel ini akan memperkenalkan beberapa teknik biasa untuk pengesahan dan penapisan data menggunakan pangkalan data PHP dan Oracle, serta memberikan contoh kod yang sepadan.
Pengesahan data ialah proses memastikan integriti dan ketepatan data input. Berikut ialah beberapa teknik pengesahan data biasa:
1.1 Pengesahan bukan nol
Pengesahan bukan nol ialah salah satu pengesahan data paling asas. Dalam PHP, anda boleh menggunakan fungsi empty() untuk menyemak sama ada pembolehubah kosong. Contohnya, coretan kod berikut menunjukkan cara untuk mengesahkan sama ada pembolehubah kosong:
$username = $_POST['username']; if (empty($username)) { echo "用户名不能为空"; }
1.2 Pengesahan jenis data
Apabila memproses input pengguna, selalunya perlu untuk mengesahkan bahawa data yang dimasukkan mematuhi jenis data yang dijangkakan. PHP menyediakan satu siri fungsi untuk mengesahkan jenis data, seperti is_int(), is_float(), is_numeric(), dll. Berikut ialah contoh yang menunjukkan cara untuk mengesahkan sama ada pembolehubah adalah daripada jenis integer:
$age = $_POST['age']; if (!is_int($age)) { echo "年龄必须为整数"; }
1.3 Pengesahan Panjang
Untuk sesetengah medan, seperti nama pengguna, kata laluan, dsb., selalunya perlu untuk mengesahkan panjangnya. Anda boleh mendapatkan panjang rentetan dengan menggunakan fungsi strlen() dan membandingkannya dengan nilai minimum dan maksimum yang dipratetap. Berikut ialah contoh cara untuk mengesahkan bahawa nama pengguna mempunyai panjang yang dijangkakan:
$username = $_POST['username']; if (strlen($username) < 6 || strlen($username) > 20) { echo "用户名长度必须在6到20个字符之间"; }
Penapisan data ialah teknik yang digunakan untuk melindungi pangkalan data daripada serangan berniat jahat. Berikut ialah beberapa petua penapisan data biasa:
2.1 Melarikan diri daripada aksara khas
Aksara khas perlu dilepaskan sebelum dimasukkan ke dalam pangkalan data untuk mengelakkan serangan suntikan SQL. Anda boleh menggunakan fungsi mysqli_real_escape_string() PHP untuk melepaskan aksara khas dalam rentetan. Berikut ialah contoh yang menunjukkan cara untuk melepaskan rentetan:
$name = $_POST['name']; $name = mysqli_real_escape_string($conn, $name); $sql = "INSERT INTO users (name) VALUES ('$name')";
2.2 Menggunakan penyataan yang disediakan
Penyataan yang dikompilasi semula ialah kaedah untuk melaksanakan penyataan SQL menggunakan pertanyaan berparameter. Ia menghalang serangan suntikan SQL dan meningkatkan prestasi pertanyaan pangkalan data. Berikut ialah contoh penggunaan pernyataan yang disediakan:
$name = $_POST['name']; $stmt = $conn->prepare("INSERT INTO users (name) VALUES (?)"); $stmt->bind_param("s", $name); $stmt->execute();
2.3 Tapis data input
Gunakan fungsi penapis untuk menapis data yang dimasukkan pengguna untuk mengelakkan serangan XSS dan tingkah laku berniat jahat yang lain. PHP menyediakan satu set fungsi penapis yang dipratentukan, seperti filter_var(), filter_input(), dsb. Berikut ialah contoh yang menunjukkan cara menapis alamat e-mel yang dimasukkan oleh pengguna:
$email = $_POST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "无效的邮件地址"; }
Ringkasnya, pengesahan dan penapisan data dalam pangkalan data PHP dan Oracle adalah langkah penting semasa membangunkan aplikasi web. Dengan mengesahkan dan menapis data yang dimasukkan pengguna dengan betul, anda boleh memastikan integriti dan ketepatan data serta meningkatkan keselamatan aplikasi. Petua dan contoh kod yang disediakan dalam artikel ini boleh membantu pembangun melaksanakan pengesahan dan penapisan data dengan berkesan.
Atas ialah kandungan terperinci Teknik pengesahan dan penapisan data untuk pangkalan data PHP dan Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!