Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memasukkan Pembolehubah PHP dengan Selamat ke dalam Penyata MySQL untuk Mencegah Suntikan SQL?

Bagaimana untuk Memasukkan Pembolehubah PHP dengan Selamat ke dalam Penyata MySQL untuk Mencegah Suntikan SQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-25 16:47:14913semak imbas

How to Safely Insert PHP Variables into MySQL Statements to Prevent SQL Injection?

Memasukkan Pembolehubah PHP ke dalam Penyata MySQL

Apabila memasukkan pembolehubah PHP dalam pernyataan MySQL, adalah penting untuk memahami peraturan untuk memastikan integriti data dan mencegah potensi kelemahan keselamatan.

1. Gunakan Penyata Disediakan untuk Literal Data

Apakah: Semua pembolehubah PHP yang mewakili literal data SQL (rentetan atau nombor) mesti disertakan melalui pernyataan yang disediakan.

Sebab: Penyataan yang disediakan membersihkan dan melindungi data dengan menghalang suntikan SQL serangan.

Bagaimana:

  • Gantikan pembolehubah dengan ruang letak dalam pertanyaan SQL.
  • Sediakan pertanyaan.
  • Ikat pembolehubah pada pemegang tempat.
  • Laksanakan pertanyaan.

Contoh menggunakan mysqli:

$type = 'testing';
$reporter = "John";
$sql = "INSERT INTO contents (type, reporter, description) VALUES ('whatever', ?, ?)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ss", $reporter, $description);
$stmt->execute();

Cara menggunakan PDO:

$type = 'testing';
$reporter = "John";
$sql = "INSERT INTO contents (type, reporter, description) VALUES ('whatever', ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$reporter, $description]);

2. Penapisan Senarai Putih untuk Bahagian Pertanyaan

Apakah: Pembolehubah yang mewakili bahagian pertanyaan lain (kata kunci, pengecam) mesti ditapis melalui "senarai putih" nilai yang dibenarkan.

Sebab: Untuk menghalang pengguna berniat jahat daripada menyuntik bahagian pertanyaan yang tidak dibenarkan atau kata kunci.

Cara:

    Buat senarai nilai yang dibenarkan.
  • Semak pembolehubah terhadap senarai sebelum memasukkannya ke dalam pertanyaan .
  • Formatkan pengecam mengikut sintaks pangkalan data (cth., tanda belakang untuk MySQL).

Contoh:

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Pembolehubah PHP dengan Selamat ke dalam Penyata MySQL untuk Mencegah Suntikan SQL?. 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