PDA

View Full Version : مقاله: تفاوت در ارسال پارامتر و Query های معمولی - SQL Injection



Saeed.Masoumi
چهارشنبه 04 شهریور 1388, 21:21 عصر
سلام
خیلی از دوستان برای استفاده از پرس و جو ها ی اسکیوال در C#‎‎ از روشی غیر از روش ارسال پارامتر استفاده می کنند.
به این شکل:



String Command="Select * from x_table where user=' " + TextBox1.Text + " '";

برنامه ای که در ضمیمه می ذارم اشکال این نوع دستورات را نشان می دهد
مشکل امنیتی Sql Injection

مبین رنجبر
چهارشنبه 04 شهریور 1388, 22:19 عصر
این کوئری 100 % مشکل امنیتی Injection داره .. با روش های زیر :


String Command="Select * from x_table where user=' " + TextBox1.Text + " '";
textbox1.text = "' or '1'='1"

اگر محتوای تکست باکس رو بصورت بالا وارد کنم شرط کوئری همیشه True میشخ و برای فرم های لوگین به راحتی میشه وارد شد .

یا مثال زیر برای حذف دیتابیس :


textbox1.text = " ' or '1'='1;drop table x_table;select 1' "