Bolehkah Suntikan SQL Melangkaui Permintaan POST dan DAPATKAN?

DDD
Lepaskan: 2024-11-13 16:42:02
asal
581 orang telah melayarinya

Can SQL Injections Go Beyond POST and GET Requests?

Bolehkah Suntikan SQL Berlaku Melangkaui 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 ']);
Salin selepas log masuk

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)) . "'";
Salin selepas log masuk

2. Kaedah GET

Pembolehubah dimulakan daripada URL:

$videoID = trim($_GET['videoID']);
$userID = trim($_GET['userID']);
Salin selepas log masuk

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";
Salin selepas log masuk

Kesimpulan

Kod yang anda berikan tidak mengandungi kelemahan suntikan SQL, terima kasih kepada penggunaan mysql_real_escape_string yang konsisten 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!

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