View Full Version : امنيت در مورد كد زير
mohsen.nsb44
یک شنبه 02 خرداد 1389, 10:11 صبح
sqldatasorce1.insertcomman="insert into tableName(name) values ('"+textbox1.text+"')";
sqldatasource1.insert();
دوستان عزيز من در مورد SQL Injection يكسري جستجو كردم حالا اين سوال رو خدمتتون دارم كد درج فقط در صفحه admin كه مدير سايت مي باشد وجود دارد كه براي ورود به ان از كنترل لوگين استفاده شده در وب سايت كاربر اجازه دسترسي به اين صفحه يا درج هيچ چيزي را ندارد. با اين حال باز هم استفاده از اين كد خطر ناك است؟
Raham
یک شنبه 02 خرداد 1389, 10:39 صبح
با سلام
دوست عزیز من در رابطه با SQL INjection تخصص زیادی ندارم اما در این حد می دونم که کد شما کاملا این باگ رو به ساده ترین شکل ممکن داره!
نکته: SQL Injection به دسترسی به صفحه یا غیره ..... بستگی نداره . بلکه کدی که شما به عنوان دستور به دیتا بیس میفرسین رو یکم روش ...... :لبخند:
در دستور شما: فقط و فقط کافیه یه ' تو یکی از TextBox ها بنویسیم << سیستم امنیتی تون به ...... نائل میشه! بعد از بررسی آیب پذیری هم براحتی میشه همه اطلاعاتون رو کشید بیرون یا حتی .....:اشتباه:
حالا راه حل چیه؟ اول اینکه شما زبانتون رو نگفتین که من بهتر کمک کنم اما به صورت عمومی میگم بقیش با خودتون:
در صورتی که یه TextBox قراره فقط عدد بخونه مثل شماره کاربر یا .... قبل از اون
String ورودی از TextBox رو به یه متغیر عددی نسبت بدین : در این صورت زمانی که هکر ' رو وارد کنه کامپایلر نمی تونه ' رو به عدد تبدیل کنه و هکر بلوک میشه (تکنیک بکار رفته در خیلی جاها از جمله بانک کشاورزی:بامزه:)
اگه قراره متن هم باشه مثل: نام کاربری آدرس میل و غیره : بازم کاری نداره که!
بجای اینکه در کوئری خودتون از UserTXT.text استفاده کنید اول بیان یه String Validition از نوع Server Side بزارین (runat=server) که قبل اینکه String ورودی را به دیتا بیس بفرسته اول کاراکتر های % ' " , غیره رو جدا کنه
سوال داشتین در خدمتم
موفق و پیروز باشین
پیونوشت: فکر کنم اینجا تالار امنیت نرم افزار نه تحت وب:بامزه:
mohsen.nsb44
یک شنبه 02 خرداد 1389, 10:47 صبح
با سلام
دوست عزیز من در رابطه با SQL INjection تخصص زیادی ندارم اما در این حد می دونم که کد شما کاملا این باگ رو به ساده ترین شکل ممکن داره!
نکته: SQL Injection به دسترسی به صفحه یا غیره ..... بستگی نداره . بلکه کدی که شما به عنوان دستور به دیتا بیس میفرسین رو یکم روش ...... :لبخند:
در دستور شما: فقط و فقط کافیه یه ' تو یکی از TextBox ها بنویسیم << سیستم امنیتی تون به ...... نائل میشه! بعد از بررسی آیب پذیری هم براحتی میشه همه اطلاعاتون رو کشید بیرون یا حتی .....:اشتباه:
حالا راه حل چیه؟ اول اینکه شما زبانتون رو نگفتین که من بهتر کمک کنم اما به صورت عمومی میگم بقیش با خودتون:
در صورتی که یه TextBox قراره فقط عدد بخونه مثل شماره کاربر یا .... قبل از اون
String ورودی از TextBox رو به یه متغیر عددی نسبت بدین : در این صورت زمانی که هکر ' رو وارد کنه کامپایلر نمی تونه ' رو به عدد تبدیل کنه و هکر بلوک میشه (تکنیک بکار رفته در خیلی جاها از جمله بانک کشاورزی:بامزه:)
اگه قراره متن هم باشه مثل: نام کاربری آدرس میل و غیره : بازم کاری نداره که!
بجای اینکه در کوئری خودتون از UserTXT.text استفاده کنید اول بیان یه String Validition از نوع Server Side بزارین (runat=server) که قبل اینکه String ورودی را به دیتا بیس بفرسته اول کاراکتر های % ' " , غیره رو جدا کنه
سوال داشتین در خدمتم
موفق و پیروز باشین
پیونوشت: فکر کنم اینجا تالار امنیت نرم افزار نه تحت وب:بامزه:
يكي از دوستان اشاره كردن كه با استاده از پارامتر مشكلم حل ميشه ميشه شما كمي در اين ضمينه توضيح بدين؟ من به زبان سي شارپ 2005 و اس كيو ال 2005 كار مي كنم
Raham
یک شنبه 02 خرداد 1389, 11:17 صبح
منظوره دوستتون روشن نيست
mohsen.nsb44
یک شنبه 02 خرداد 1389, 11:28 صبح
منظوره دوستتون روشن نيست
ميشه شما يك مثال واسه راه حل خودتون بزنيد تا بهتر متوجه منظورتون بشم
mohsen.nsb44
یک شنبه 02 خرداد 1389, 11:32 صبح
منظوره دوستتون روشن نيست
دوست عزيز من يك پروژه سفارش گرفتم و تا يك هفته ديگه بايد تحويل بدم لطفا كمك كنيد
whitehat
یک شنبه 02 خرداد 1389, 11:38 صبح
در همان بخش ASP.NET موضوع را دنبال کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.