Pendekatan yang betul untuk pengesahan input PHP

王林
Lepaskan: 2024-05-05 08:12:01
asal
652 orang telah melayarinya

Kaedah pengesahan input PHP: Gunakan fungsi terbina dalam PHP (filter_var, preg_match), gunakan ungkapan biasa (seperti mengesahkan kekuatan kata laluan), gunakan senarai putih atau senarai hitam (had atau larang nilai input tertentu)

PHP 输入验证的正确做法

Pengesahan input PHP adalah betul Amalan

Pengesahan input adalah penting dalam aplikasi web kerana ia menghalang input berniat jahat atau tidak sah daripada menyebabkan kemudaratan kepada aplikasi. PHP menyediakan pelbagai fungsi dan teknik terbina dalam untuk mengesahkan input dengan cekap.

1. Gunakan fungsi terbina dalam PHP

PHP mempunyai beberapa fungsi berguna untuk menapis dan mengesahkan input, seperti:

// 过滤用户输入中的 HTML 标记
$filtered_input = filter_var($_POST['input'], FILTER_SANITIZE_SPECIAL_CHARS);

// 验证电子邮件地址
$is_email_valid = filter_var($_GET['email'], FILTER_VALIDATE_EMAIL);
Salin selepas log masuk

2. boleh digunakan untuk mengesahkan input yang kompleks. Begini cara untuk mengesahkan kekuatan kata laluan menggunakan ungkapan biasa:

function validate_password($password) {
  $regex = '/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,}$/';
  return preg_match($regex, $password);
}
Salin selepas log masuk

3. Gunakan senarai putih atau senarai hitam

Jika input mempunyai nilai yang dibenarkan atau tidak dibenarkan yang jelas, anda boleh menggunakan senarai putih atau senarai hitam untuk mengesahkan.

Senarai putih:

Hanya benarkan nilai tertentu lulus. Sebagai contoh, kod berikut hanya membenarkan buah-buahan tertentu untuk dimasukkan:

$allowed_fruits = array('apple', 'banana', 'orange');
if (in_array($_GET['fruit'], $allowed_fruits)) {
  // 输入有效
}
Salin selepas log masuk
Senarai hitam:

melarang nilai tertentu daripada melaluinya. Contohnya, kod berikut melumpuhkan input yang mengandungi kata kunci tertentu:

$disallowed_keywords = array('spam', 'malware', 'virus');
if (stripos($_POST['comment'], $disallowed_keywords) !== false) {
  // 输入无效
}
Salin selepas log masuk
Contoh praktikal: Borang pendaftaran pengguna

Berikut ialah contoh kod untuk borang pendaftaran pengguna yang menunjukkan cara menggunakan pengesahan input PHP:

<?php
// 验证用户输入
$errors = array();

if (empty($_POST['username'])) {
  $errors[] = '用户名不能为空';
}

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  $errors[] = '无效的电子邮件地址';
}

if (!validate_password($_POST['password'])) {
  $errors[] = '密码强度不足';
}

// 处理已验证的输入
if (empty($errors)) {
  // 注册用户
}
?>
Salin selepas log masuk
Dengan mengikuti ini amalan , anda boleh mengesahkan input pengguna dengan berkesan dan memastikan keselamatan dan integriti aplikasi anda.

Atas ialah kandungan terperinci Pendekatan yang betul untuk pengesahan input 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