Penapisan data PHP: daripada input pengguna kepada keselamatan pangkalan data

王林
Lepaskan: 2023-07-29 06:30:01
asal
1298 orang telah melayarinya

Penapisan Data PHP: Daripada Input Pengguna kepada Keselamatan Pangkalan Data

Ikhtisar:
Dalam pembangunan web, keselamatan data input pengguna merupakan isu yang sangat penting. Penapisan dan pengesahan input yang tidak betul boleh mendedahkan pangkalan data kepada serangan seperti suntikan SQL, skrip rentas tapak (XSS), dsb. Artikel ini akan memperkenalkan cara menggunakan PHP untuk penapisan dan pengesahan data untuk memastikan keselamatan data daripada input pengguna kepada storan dalam pangkalan data.

  1. Penapisan input
    Data yang dimasukkan oleh pengguna tidak boleh dipercayai, jadi ia mesti ditapis dengan sewajarnya. Berikut ialah beberapa teknik penapisan input biasa.

(1) HTML Escape
Data yang dimasukkan oleh pengguna mungkin mengandungi tag HTML Untuk mengelakkan serangan XSS, data tersebut hendaklah HTML dilepaskan. PHP menyediakan fungsi htmlspecialchars() untuk melaksanakan fungsi ini.
Contoh kod:

$input = $_POST['input']; $filteredInput = htmlspecialchars($input);
Salin selepas log masuk

(2) Alih keluar lebihan ruang
Sebelum memproses input pengguna, anda harus menggunakan fungsi trim() untuk membuang lebihan ruang daripada data input.
Contoh kod:

$input = $_POST['input']; $filteredInput = trim($input);
Salin selepas log masuk

(3) Tapis aksara khas
Untuk mengelakkan aksara khas yang terkandung dalam input pengguna daripada menyebabkan masalah pelaksanaan kod, anda boleh menggunakan fungsi filter_var() PHP digabungkan dengan penapis FILTER_SANITIZE_STRING untuk menapis input.
Contoh kod:

$input = $_POST['input']; $filteredInput = filter_var($input, FILTER_SANITIZE_STRING);
Salin selepas log masuk
  1. Sahkan data
    Selain menapis input pengguna, anda juga perlu mengesahkan kesahihan data input. Berikut adalah beberapa teknik pengesahan data yang biasa digunakan.

(1) Sahkan e-mel
Anda boleh menggunakan fungsi filter_var() digabungkan dengan penapis FILTER_VALIDATE_EMAIL untuk mengesahkan kesahihan alamat e-mel.
Contoh kod:

$email = $_POST['email']; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // 邮箱地址合法 } else { // 邮箱地址非法 }
Salin selepas log masuk

(2) Sahkan URL
Anda boleh menggunakan fungsi filter_var() digabungkan dengan penapis FILTER_VALIDATE_URL untuk mengesahkan kesahihan URL.
Contoh kod:

$url = $_POST['url']; if (filter_var($url, FILTER_VALIDATE_URL)) { // URL合法 } else { // URL非法 }
Salin selepas log masuk

(3) Sahkan nombor
Anda boleh menggunakan fungsi is_numeric() untuk mengesahkan sama ada input ialah nombor.
Contoh Kod:

$number = $_POST['number']; if (is_numeric($number)) { // 输入为数字 } else { // 输入非数字 }
Salin selepas log masuk
  1. Keselamatan Pangkalan Data
    Sebelum menyimpan data input pengguna ke dalam pangkalan data, data tersebut perlu diproses lebih lanjut untuk memastikan keselamatan pangkalan data.

(1) Gunakan pernyataan yang disediakan
Kenyataan yang disediakan ialah cara untuk menghantar parameter melalui ruang letak, yang boleh menghalang serangan suntikan SQL dengan berkesan. Menggunakan PDO atau pustaka sambungan mysqli, anda boleh menggunakan pernyataan yang disediakan dengan mudah untuk melaksanakan operasi pangkalan data.
Contoh kod (menggunakan PDO):

$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $stmt = $db->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $email); $name = $_POST['name']; $email = $_POST['email']; $stmt->execute();
Salin selepas log masuk

(2) Menggunakan pencincangan kata laluan
Apabila menyimpan kata laluan pengguna, ia tidak seharusnya disimpan dalam teks yang jelas, tetapi disimpan menggunakan cincang kata laluan. PHP menyediakan fungsi password_hash() untuk melaksanakan pencincangan kata laluan.
Contoh Kod:

$password = $_POST['password']; $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
Salin selepas log masuk

Ringkasan:
Dalam pembangunan web, keselamatan data adalah penting. Melalui penapisan dan pengesahan input pengguna, serta pengendalian keselamatan pangkalan data yang betul, keselamatan aplikasi web boleh dipertingkatkan dan potensi ancaman keselamatan boleh dicegah dengan berkesan. Dalam pembangunan sebenar, kita harus memilih kaedah yang sesuai untuk penapisan dan pengesahan data berdasarkan keperluan khusus untuk melindungi keselamatan data pengguna.

Atas ialah kandungan terperinci Penapisan data PHP: daripada input pengguna kepada keselamatan pangkalan data. 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!