Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan terbaik untuk pengesahan data menggunakan PHP

Amalan terbaik untuk pengesahan data menggunakan PHP

WBOY
WBOYasal
2023-08-25 11:51:39679semak imbas

Amalan terbaik untuk pengesahan data menggunakan PHP

Dalam pembangunan web, pengesahan data ialah pautan yang sangat penting. Sebagai salah satu bahasa pengaturcaraan yang biasa digunakan dalam pembangunan web, PHP juga mempunyai kaedah pengesahan data dan amalan terbaiknya sendiri.

Berikut ialah pengenalan kepada amalan terbaik untuk menggunakan PHP untuk pengesahan data.

1. Pengesahan data bahagian hadapan

Sebelum data dihantar ke pelayan, kami boleh menggunakan bahasa bahagian hadapan​​​seperti JavaScript untuk mengesahkan data. Ini mengelakkan permintaan yang tidak perlu dan mempercepatkan tindak balas pelayan. Tetapi pengesahan bahagian hadapan juga mempunyai beberapa kelemahan Contohnya, peraturan pengesahan bahagian hadapan boleh dipintas, jadi sebenarnya ia hanyalah penapis mudah.

2. Tapis data input

Di bahagian pelayan, kita perlu menapis data sekali lagi. PHP menyediakan beberapa fungsi penapisan, seperti filter_var() dan filter_input().

Fungsi filter_input boleh menapis data GET, POST atau COOKIE yang diserahkan, dan filter_var boleh menapis pembolehubah yang ditentukan. Fungsi ini boleh menapis pelbagai jenis data, seperti mengesahkan e-mel, menyemak sama ada ia adalah integer, menyemak sama ada ia adalah URL, dsb. Gunakan fungsi ini untuk mengelakkan suntikan SQL, XSS dan isu keselamatan lain.

Contohnya:

$email = $_POST['email'];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Invalid email format";
} else {
  echo "Email is valid";
}

Di sini kami menggunakan fungsi filter_var dan pemalar FILTER_VALIDATE_EMAIL untuk mengesahkan sama ada alamat e-mel itu sah.

3. Gunakan ungkapan biasa

Apabila menapis data, kami juga boleh menggunakan ungkapan biasa untuk memadankan data. Fungsi preg_match() PHP membolehkan kami menggunakan ungkapan biasa untuk pemadanan dan pengesahan data.

Contohnya:

$pattern = "/^[a-zA-Z0-9]{6,}$/";
$password = $_POST['password'];

if (preg_match($pattern, $password)) {
  echo "Password is valid";
} else {
  echo "Invalid password format";
}

Di sini kami menggunakan ungkapan biasa untuk mengesahkan bahawa kata laluan mengandungi sekurang-kurangnya enam aksara dan hanya mengandungi huruf dan nombor.

4. Gunakan perpustakaan kelas pengesahan

Untuk logik pengesahan data yang kompleks, kita boleh menggunakan perpustakaan kelas pengesahan. Pustaka kelas ini boleh membantu kami mewujudkan peraturan pengesahan dengan cepat dan menyediakan peraturan pengesahan biasa, seperti: tidak kosong, panjang minimum dan maksimum serta keunikan.

Library pengesahan PHP biasa ialah:

  • Pengesahan PHP
  • Respect Validation
  • Symfony Validator Component
  • Laravel Validation
kami boleh menggunakan peraturan tersuai ini dengan cepat.

5. Peraturan pengesahan tersuai

Kadangkala, kami perlu menyesuaikan beberapa peraturan pengesahan berdasarkan logik perniagaan projek. Dalam kes ini kita boleh menulis pengesah tersuai.

Dengan mentakrifkan kelas yang mewarisi kelas Pengesah PHP, kami boleh menulis peraturan pengesahan kami sendiri.

Contohnya:

use IlluminateValidationValidator;

class CustomValidator extends Validator {
  public function validateIsEven($attribute, $value, $parameters)
  {
    return $value % 2 == 0;
  }
}

$validator = new CustomValidator($data, $rules);

$validator->setCustomMessages([
  'is_even' => 'The :attribute must be even.'
]);

if ($validator->fails()) {
  // Handle validation errors
}

Dalam contoh ini, kami telah menyesuaikan peraturan pengesahan is_even untuk mengesahkan sama ada data ialah nombor genap.

Berfikir: Apabila kami menggunakan peraturan pengesahan tersuai, kami perlu mengelakkan parameter yang tidak ditentukan, parameter lalai dan parameter input yang tidak diketahui. Apa lagi yang perlu kita perhatikan?

6. Digabungkan dengan pengendalian ralat

Pengesahan data bukan sekadar mengesahkan data itu sendiri, tetapi juga perlu menangani situasi kegagalan pengesahan. Apabila ralat pengesahan berlaku, mesej ralat hendaklah jelas dan ringkas.

PHP menyediakan beberapa fungsi dan kelas yang boleh digunakan untuk mengendalikan ralat pengesahan, contohnya: fungsi validation_errors() digunakan untuk meringkaskan mesej ralat:

$errors = validation_errors();

Rangka kerja Laravel menyediakan mekanisme pengendalian ralat khusus, yang dipanggil dengan memaparkan mesej ralat dalam borang untuk "Pengendalian Ralat Pengesahan Dalam Penyemak Imbas". Ia juga menyediakan mekanisme "Stor Sesi Berasaskan Ubah Arah" untuk mengubah hala ke halaman tertentu sambil mengesahkan ralat.

7. Ringkasan

Di atas adalah amalan terbaik untuk menggunakan PHP untuk pengesahan data. Pengesahan data adalah bahagian yang sangat penting dalam pembangunan web. Semasa memproses data, kita perlu memberi perhatian untuk memastikan keselamatan dan ketepatan data. PHP menyediakan beberapa fungsi dan kelas yang boleh digunakan untuk mengendalikan pengesahan data dengan mudah. Selain itu, pengendalian ralat pengesahan juga merupakan langkah yang sangat kritikal. Maklumat segera perlu ringkas dan jelas supaya pengguna dapat mencari dan membetulkan ralat dengan cepat. Akhir sekali, kami juga boleh menggunakan beberapa pustaka kelas dan peraturan pengesahan tersuai untuk melengkapkan peraturan pengesahan yang sangat disesuaikan.

Atas ialah kandungan terperinci Amalan terbaik untuk pengesahan data menggunakan 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