Xài nhanh (RAD) MySQL với C#

Khi code nhanh, cần giao tiếp CSDL, lập trình viên thường ẩu, không tính đến các vấn đề về bảo mật.

Một trong những trick đơn giản để tránh lỗi không đáng có khi giao tiếp CSDL, là khi insert, update, không nên sử dụng cách cộng chuỗi để ghép thành câu SQL mà nên sử dụng tham số hình thức (dấu ? trong câu SQL mẫu). Làm vậy sẽ tránh được SQL Injection:

string sSQL_NewMsg = "INSERT INTO `messages` (`user`, `time`, `msg`, `from`, `direct`, `reply`) " +
"VALUES (?user, ?time, ?msg, ?from, ?direct, ?reply); ";
MySqlParameter paramuser = new MySqlParameter("?user", "lockevn");
MySqlParameter paramtime = new MySqlParameter("?time", 1219057011);
MySqlParameter parammsg = new MySqlParameter("?msg", ".");
MySqlParameter paramfrom = new MySqlParameter("?from", "web");
MySqlParameter paramdirect = new MySqlParameter("?direct", DbType.Int32); paramdirect.Value = 0;
MySqlParameter paramreply = new MySqlParameter("?reply", DbType.Int32); paramreply.Value = 0;
try
{
MySqlHelper.ExecuteNonQuery(myCon, sSQL_NewMsg,
paramuser, paramtime, parammsg, paramfrom, paramdirect, paramreply
);
}
catch (Exception ex)
{
ex.ToString();
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s