Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Suntikan SQL Melangkaui Permintaan POST dan DAPATKAN?

Bolehkah Suntikan SQL Melangkaui Permintaan POST dan DAPATKAN?

DDD
DDDasal
2024-11-13 16:42:02534semak imbas

Can SQL Injections Go Beyond POST and GET Requests?

Bolehkah Suntikan SQL Berlaku Melampaui Permintaan POST dan GET?

Suntikan SQL mengeksploitasi kelemahan dalam aplikasi web yang tidak membersihkan input pengguna dengan secukupnya sebelum memasukkannya Pertanyaan SQL. Walaupun kaedah POST dan GET adalah jalan biasa untuk serangan ini, suntikan SQL boleh berlaku melalui cara lain juga.

Dalam kod yang disediakan, mysql_real_escape_string digunakan untuk mengekod input pengguna, mengurangkan risiko suntikan SQL. Walau bagaimanapun, keselamatan kod sangat bergantung pada aplikasi pengekodan yang konsisten ini.

Memeriksa Kod Contoh

1. Kaedah POST

Contoh kod memulakan pembolehubah dengan input pengguna:

$name = trim($_POST['username']);
$mail = trim($_POST['email']);
$password = trim($_POST['password ']);

Sebelum menyimpan maklumat pengguna dalam pangkalan data, ia dikodkan dengan secukupnya:

$sql =
"INSERT INTO
   clients
 SET
   name='" . mysql_real_escape_string($name) . "',
   mail='" . mysql_real_escape_string($mail) . "',
   password='" . mysql_real_escape_string(sha1($password)) . "'";

2. Kaedah GET

Pembolehubah dimulakan daripada URL:

$videoID = trim($_GET['videoID']);
$userID = trim($_GET['userID']);

Sekali lagi, pertanyaan SQL menggunakan pengekodan yang sesuai:

$sql =
"SELECT
   videoID
 FROM
   likes
 WHERE
   videoID = '" . mysql_real_escape_string($videoID) . "' AND UID = '" . mysql_real_escape_string($userID) . "' LIMIT 1";

Kesimpulan

Kod yang anda berikan tidak mengandungi kelemahan suntikan SQL, terima kasih kepada penggunaan konsisten mysql_real_escape_string untuk mengekod input pengguna. Adalah penting untuk ambil perhatian bahawa pengekodan mesti digunakan dengan bijak pada semua input pengguna tanpa mengira sumbernya. Untuk meningkatkan lagi keselamatan, pertimbangkan untuk menggunakan pendekatan yang lebih moden menggunakan PDO dengan pernyataan yang disediakan.

Atas ialah kandungan terperinci Bolehkah Suntikan SQL Melangkaui Permintaan POST dan DAPATKAN?. 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