PDA

View Full Version : جلوگیری از حملات sqlinjection



salmah
شنبه 18 مرداد 1393, 10:29 صبح
سلام دوستان لطفا راهنمای کنید که به طور عملی باید چه کارهایی بکنم
یه سری مطلب پیدا کردم ولی خیلی طولانین و در نهایت به راه عملی نمی رسم

hadi0x7c7
شنبه 18 مرداد 1393, 12:16 عصر
از استورد پروسیجر استفاده کنید.

salmah
شنبه 18 مرداد 1393, 13:22 عصر
چه جوری استفاده کنم... اگر امکان داره یه مثال بزنید

از استورد پروسیجر استفاده کنید.

hadi0x7c7
شنبه 18 مرداد 1393, 13:35 عصر
استورد پروسیجراتونو تعریف میکنید، بعد توی کدتون استفاده میکنید!

salmah
شنبه 18 مرداد 1393, 13:39 عصر
ممنون.ببخشید دقیقا تو پروسیچرم چی بنویسم

استورد پروسیجراتونو تعریف میکنید، بعد توی کدتون استفاده میکنید!

notlikeothers
شنبه 18 مرداد 1393, 15:41 عصر
ممنون.ببخشید دقیقا تو پروسیچرم چی بنویسم



Create procedure your procedure name(@parameter dataType,@parameter dataType)

As

Begin

اینجا اون دستور اsqlرو بنویس.

End

sadegh.te
شنبه 18 مرداد 1393, 17:01 عصر
با این کار امنیت سایت بالا میره آیا؟

salmah
شنبه 18 مرداد 1393, 20:53 عصر
خب برا همه پروسیجرها همین جوری می نویسیم دیگه..........


Create procedure your procedure name(@parameter dataType,@parameter dataType)

As

Begin

اینجا اون دستور اsqlرو بنویس.

End

Majid&Masoud
یک شنبه 19 مرداد 1393, 00:05 صبح
سلام
اگه پارامترهارو اینجوری به Stored Procedure پاس بدید جلوی این حملات گرفته میشه
[
SqlConnection connection = new SqlConnection("server=.;database=Test;trusted_connection=true");

SqlCommand command = new SqlCommand();

command.CommandText = "ProcedureName";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@ParameterName", Textbox1.Text);
try
{
connection.Open();
command.ExecuteNonQuery();
}

Majid&Masoud
یک شنبه 19 مرداد 1393, 20:07 عصر
آقای sadegh.te اگه استفاده از Stored Procedure منظورتونه بله

ahmad156
یک شنبه 19 مرداد 1393, 22:36 عصر
دوست عزیز برای جلوگیری از حملات Sql Injection راههای زیادی وجود داره که اینجا (http://msdn.microsoft.com/en-us/library/ff648339.aspx)توضیح داده.البته باید یه مورد رو به این لیست اضافه کرد اون هم اکثر ORM ها من جمله Entity Framework .در صورت عدم استفاده از Entity Framework بهترین گزینه استفاده از parameterized queries هست که شما هم میتونین با استفاده از Sql Parameter ها در Query های ساده خودتون یا استفاده از Stored Procedure (در صورتی (http://blogs.msdn.com/b/brian_swan/archive/2011/02/16/do-stored-procedures-protect-against-sql-injection.aspx) که حتماً به صورت پارامتر اطلاعات رو بهش ارسال کنین) پیاده سازی کنین.