سلام دوستان میخواستم بدونم چطور میشه در سی شارپ و پایگاه داده SQL
از تزیق کد های مخرب و حمله اینجکشن جلو گیری کرد
ممنونم :قلب:
Printable View
سلام دوستان میخواستم بدونم چطور میشه در سی شارپ و پایگاه داده SQL
از تزیق کد های مخرب و حمله اینجکشن جلو گیری کرد
ممنونم :قلب:
از StoredProcedure استفاده کنید.
راه سختش هم escape کردن ' " -- # و ...
البته راه های سخت تری هم هست. اما SP بهترین و راحت ترین راه هست.
دوست عزیز باید از پارامتر ها استفاده کنی
SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind ;uid=sa;pwd=sa");
mySqlConnection.Open();
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText =
"INSERT INTO Customers (" +
" CustomerID, CompanyName, ContactName" +
") VALUES (" +
" @CustomerID, @CompanyName, @ContactName" +
")";
mySqlCommand.Parameters.Add("@CustomerID", SqlDbType.NChar, 5);
mySqlCommand.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40);
mySqlCommand.Parameters.Add("@ContactName", SqlDbType.NVarChar, 30);
mySqlCommand.Parameters["@CustomerID"].Value = "J4COM";
mySqlCommand.Parameters["@CompanyName"].Value = "J4 Company";
mySqlCommand.Parameters["@ContactName"].IsNullable = true;
mySqlCommand.Parameters["@ContactName"].Value = DBNull.Value;
mySqlCommand.ExecuteNonQuery();
Console.WriteLine("Successfully added row to Customers table");
mySqlConnection.Close()
اگه از LINQ استفاده می کنید خودش تمام کوئری هایش به صورت پارامتری هستند.
این مطلب رو هم در این مورد مطالع بفرمائید: http://www.dotnettips.info/Post/360/...B1-linq-to-sql