Rumah > pangkalan data > tutorial mysql > Mengapakah `AddWithValue()` Diutamakan Daripada `Add()` untuk Mencegah Suntikan SQL dalam MySQL?

Mengapakah `AddWithValue()` Diutamakan Daripada `Add()` untuk Mencegah Suntikan SQL dalam MySQL?

Barbara Streisand
Lepaskan: 2024-12-04 06:53:11
asal
262 orang telah melayarinya

Why is `AddWithValue()` Preferred Over `Add()` for Preventing SQL Injection in MySQL?

Command.Parameters.Add() tidak digunakan lagi: Menggunakan AddWithValue() dalam MySQL Query Injection

Penggunaan Command.Parameters.Add () dalam pertanyaan MySQL telah ditamatkan atas sebab keselamatan. Untuk memastikan keselamatan suntikan pertanyaan, adalah disyorkan untuk menggunakan kaedah AddWithValue() sebaliknya.

Berikut ialah cara untuk mengemas kini kod anda untuk menggunakan AddWithValue():

string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
command.CommandText = SQL;
command.Parameters.AddWithValue("@mcUserName", mcUserNameNew);
command.Parameters.AddWithValue("@mcUserPass", mcUserPassNew);
command.Parameters.AddWithValue("@twUserName", twUserNameNew);
command.Parameters.AddWithValue("@twUserPass", twUserPassNew);
Salin selepas log masuk

Dengan menggunakan AddWithValue() , anda menghapuskan risiko memasukkan aksara khas atau arahan SQL yang berniat jahat dalam pertanyaan anda, dengan itu menghalang suntikan SQL serangan.

Pertanyaan SQL asal, yang membalut ruang letak dengan petikan tunggal, juga merupakan kelemahan keselamatan. Format yang betul untuk pertanyaan SQL dalam MySQL ialah menggunakan backticks (`) dan bukannya petikan tunggal untuk nama medan dan jadual. Oleh itu, pertanyaan SQL yang dikemas kini sepatutnya kelihatan seperti ini:

string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah `AddWithValue()` Diutamakan Daripada `Add()` untuk Mencegah Suntikan SQL dalam MySQL?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan