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