گلستانه ارقام پارسیان|های‌تک

در اغلب برنامه های کاربردی تحت وب از بانکهای اطلاعاتی یا پایگاه داده استفاده می شود.این برنامه ها داده های ورودی کاربر را به یکqueryتبدیل کرده و به بانک اطلاعاتی ارسال میکند. SQL...

معرفی حملات SQL Injection

site_4

در اغلب برنامه های کاربردی تحت وب از بانکهای اطلاعاتی یا پایگاه داده استفاده می شود.  این برنامه ها داده های ورودی کاربر را به یک query تبدیل کرده و به بانک اطلاعاتی ارسال میکند.

 SQL Injectionبه معنی تزریق کد SQL است که یک روش قدیمی برای حمله به سایت هایی است که از بانک های اطلاعاتی و فرم ها استفاده می کنند.

نحوه عملکرد:

روش این حمله به این صورت است که هکر در فرم های سایت، در فیلدی که باید اطلاعات خود را وارد کند، کد های مخرب SQL را وارد می کند و چون این کد ها در زمان اجرا تفسیر می شوند سیستم به جای اجرا کردن کد SQL اصلی، کد مورد نظر هکر را اجرا می کند.

به طور مثال در فیلد username چیزی به غیر از نام کاربری وارد شود مثلا  hi' or 1=1'

نوع اطلاعات ورودی در SQL Injection به نوع سرویس هاستینگ و دیتابیس بستگی دارد و هر دیتابیسی به یک سری کاراکترهای خاص حساس است. مثلا Mysql  در هاست لینوکس به کاراکتر ' و چند کاراکتر دیگر حساس است...

روش های مقابله :

- بهترین راه مقابله با حملات SQL Injection چک کردن ورودی ها قبل ارسال آنها به پایگاه داده به عنوان یک Query است. میتوانید ورودی فرم ها را به کمک روشهای مختلف چک کنید که حاوی کارکترهای غیرمجاز نباشند.

- یا یک روش دیگر برای جلوگیری از حملات SQL Injection ایجاد چند کاربر با دسترسی های مختلف به دیتابیس است .

- پیام‌های خطایی که ایجاد می‌کنید با دقت بیشتری انتخاب کنید. مثلاً خطای  ‘ نام کاربری نمی‌تواند شامل اعداد باشد’ را که توسط پایگاه داده برگردانده می‌شود در نظر بگیرید. همین اطلاعات کم می تواند به مهاجم این کمک را بکند که در قسمت نام کاربری اعداد را وارد نکند.

- امنیت پایگاه داده خود را ارتقاء دهید.

 

7 دی 1393   |   2159 بازدید