معرفی حملات SQL Injection
در اغلب برنامه های کاربردی تحت وب از بانکهای اطلاعاتی یا پایگاه داده استفاده می شود. این برنامه ها داده های ورودی کاربر را به یک query تبدیل کرده و به بانک اطلاعاتی ارسال میکند.
SQL Injectionبه معنی تزریق کد SQL است که یک روش قدیمی برای حمله به سایت هایی است که از بانک های اطلاعاتی و فرم ها استفاده می کنند.
نحوه عملکرد:
روش این حمله به این صورت است که هکر در فرم های سایت، در فیلدی که باید اطلاعات خود را وارد کند، کد های مخرب SQL را وارد می کند و چون این کد ها در زمان اجرا تفسیر می شوند سیستم به جای اجرا کردن کد SQL اصلی، کد مورد نظر هکر را اجرا می کند.
به طور مثال در فیلد username چیزی به غیر از نام کاربری وارد شود مثلا hi' or 1=1'
نوع اطلاعات ورودی در SQL Injection به نوع سرویس هاستینگ و دیتابیس بستگی دارد و هر دیتابیسی به یک سری کاراکترهای خاص حساس است. مثلا Mysql در هاست لینوکس به کاراکتر ' و چند کاراکتر دیگر حساس است...
روش های مقابله :
- بهترین راه مقابله با حملات SQL Injection چک کردن ورودی ها قبل ارسال آنها به پایگاه داده به عنوان یک Query است. میتوانید ورودی فرم ها را به کمک روشهای مختلف چک کنید که حاوی کارکترهای غیرمجاز نباشند.
- یا یک روش دیگر برای جلوگیری از حملات SQL Injection ایجاد چند کاربر با دسترسی های مختلف به دیتابیس است .
- پیامهای خطایی که ایجاد میکنید با دقت بیشتری انتخاب کنید. مثلاً خطای ‘ نام کاربری نمیتواند شامل اعداد باشد’ را که توسط پایگاه داده برگردانده میشود در نظر بگیرید. همین اطلاعات کم می تواند به مهاجم این کمک را بکند که در قسمت نام کاربری اعداد را وارد نکند.
- امنیت پایگاه داده خود را ارتقاء دهید.
7 دی 1393 | 2232 بازدید