Sqlinjection چیست | حمله اس کیو ال اینجکشن

Sqlinjection چیست؟

زمانی که از اینترنت حرف زده می شود امنیت و اطمینان حاصل کردن از این که اطلاعات حساس دست نخورده بماند و به سرقت نرود یکی از دغدغه های بسیار مهم افراد است؛ در این رابطه هک شدن سایت و سرقت اطلاعات کاربران توسط هکرها موضوع دیگریست که به همین اندازه اهمیت دارد و این مسئله یکی از مباحث داغ اینترنت به شمار می آید.

Sqlinjection چیست؟ موضوعی است که در این مقاله از قدس وب به بررسی آن خواهیم پرداخت، با ما همراه باشید و ادامه مطلب را از دست ندهید.Sqlinjection یکی از حملات مهم به وب و اینترنت است که نفوذگران از این طریق قادر هستند به سایت ها دسترسی پیدا کنند و اطلاعات کاربران را به سرقت ببرند؛ در واقع هدف Sqlinjection پایگاه هدف داده یا دیتابیس می باشد؛ به عبارت دیگر حمله Sqlinjection یا تزریق کد Sql یکی از حملات خطرناک است که در آن مهاجمان تلاش دارند با فرستادن یا تزریق کدهای مختلف برای دیتابیس سیستم مورد هدف یک روزنه برای نفوذ به اطلاعات پیدا کنند؛ به طور معمول urlهایی که کوئری های متعددی دارند، صفحات وارد کردن داده ها به فرم و صفحات لاگین از جمله اهداف مناسب برای حمله نام برده به شمار می آیند.

شاید این سوال برایتان پیش آید که حمله Sqlinjection چگونه اجرا می شود؟ در جواب این پرسش باید به شما بگوییم که  تزریق کد sql به این شکل است که یک لیست از فرمان ها و کوئری های متعدد برای دیتابیس یا پایگاه داده تهیه می شود و از راه شناسایی شده توسط هکرها به وسیله ابزارهای گوناگونی نظیر Kali Linux و Injection به سایت تزریق می شوند و پیشگیری از این نوع حمله ها کار چندان راحتی نیست.

انواع حملات Sqlinjection

حملات Sqlinjection را می توان مطابق با شیوه هایی که به جهت دسترسی به اطلاعات بک اند به کار می گیرند و اندازه آسیب رسانی آن ها دسته بندی کرد که به طور کلی شامل سه دسته زیر می شوند.

  1. Sqli در باند: در حمله Sqli در باند، نفوذگر از یک کانال ارتباطی به جهت پیاده سازی حمله و گردآوری نتایج استفاده می کند که این حمله خود به دو دسته Error based sqli و union based sqli تقسیم بندی می گردد که در حالت اول، پایگاه اطلاعات پیام خطا به تولید می رساند و این پیام ها قادر هستند که داده های مورد نیاز را در مورد ساختار دیتابیس جمع آوری نمایند؛ و اما در حالت دوم به وسیله اپراتور union sqli چند فرمان انتخابی که پایگاه اطلاعاتی به تولید رسانده با هم ادغام می شوند تا یک جواب http ایجاد شود که این پاسخ در بردارنده اطلاعات مورد نیاز مهاجم می باشد.
  2. حمله Sqli استنتاجی: در حمله استنتاجی نفوذگر بارها اطلاعات را برای سرور می فرستند تا با دیدن جواب و رفتار آن اطلاعات جزئی تری را در خصوص ساختار آن به دست بیاورد؛ این نوع حمله به حمله کور معروف است؛ چرا که اطلاعات از پایگاه داده وب سایت به مهاجم انتقال داده نمی شود و وی تحت هیچ شرایطی نمی تواند اطلاعات حمله درون باند را ببیند و تنها به جواب و رفتار سرور وابسته می باشد.

حمله sqli استنتاجی نیز خود به دو دسته Boolean و حملات مبتنی بر زمان تقسیم می شود که در حمله اول نفوذگر یک کوئری sql را به دیتابیس ارسال می کند و از برنامه درخواست می نماید که نتیجه را برگرداند و بسته به این که کوئری غلط است یا درست نتیجه متفاوت خواهد بود و مطابق با این نتیجه ها داده های پاسخ http نیز تغییر می کنند.

در حملات مبنی بر زمان هکر یک کوئری به پایگاه داده ارسال می کند تا آن را برای چند لحظه در وضعیت انتظار نگه دارد و بعد از آن با توجه به زمان جوابدهی دیتابیس نتیجه صحیح یا غلط بودن کوئری تشخیص داده می شود.

  1. حمله Sqli خارج از باند: یک نفوذگر تنها زمانی می تواند حمله sqli خارج از باند را به اجرا در بیاورد که یک سری از مشخصه های خاص در سرور دیتابیس مورد هدف فعال باشند و از این نوع حمله زمانی استفاده می شود که هکر قادر نباشد از یک کانال ارتباطی اطلاعات مورد نیاز را جمع آوری کند.

بهترین شیوه های جلوگیری از حمله Sqlinjection

همان طور که در ابتدای مطلب هم به این موضوع اشاره کردیم، حملات Sqlinjection از خطرناک ترین حمله ها هستند و یک نوع تهدید برای سایت ها به شمار می آیند؛ اما همیشه برای مقابله با هر خطری یک راه وجود دارد و راهکارهای جلوگیری از حملات aqlinjection نیز به شرح موارد زیر هستند.

  • اعتبار سنجی ورودی کاربران

در این روش شما باید ضروری ترین عبارات sql را مشخص کنید و یک فهرست مجاز برای تمام آن ها فراهم نمایید که با این کار می توانید حساب های غیرمجاز و تایید نشده را کنار بگذارید و حذف نمایید.

  • محدودیت به کارگیری برخی کاراکترهای خاص

هکران تزریق sql قادر هستند که یک سری از الگوهای کاراکتری خاص را به جهت حمله به دیتابیس به کار بگیرند؛ به همین جهت یکی از بهترین راهکارها برای پیشگیری از این حمله، پاک کردن داده ها و جلوگیری از ادغام رشته ها می باشد.

  • استفاده نکردن از Sql پویا

شما نباید که ورودی های کاربران خود را به طور مستقیم در فرمان های sql قرار دهید و در عوض،  عبارات آماده و کوئری های پارامتری را به کار بگیرید که امنیت بیشتری دارند.

  • رمزگذاری داده های پایگاه اطلاعاتی

 رمزگذاری اطلاعات خصوصی و محرمانه ای که در دیتابیس ذخیره سازی می شوند یکی از برترین شیوه های پیشگیری از این حملات به شمار می آیند که در این حالا حتی اگر نفوذگر موفق شود به اطلاعات برسد، نمی تواند آن ها را ببیند یا بخواند.

  • به روزرسانی دیتابیس

همیشه سعی کنید که پایگاه داده و دیتابیس خود را با آخرین نسخه های موجود به روزرسانی نمایید که این کار از سوء استفاده نفوذگران در تیراژه های قدیمی برنامه پیشگیری به عمل می آورد.

سخن پایان

همان طور که متوجه شدید، حمله Sqlinjaction یکی از پرکاربردترین روش ها به جهت دسترسی به اطلاعات حساس و مکان های غیرمجاز بوده که عاملی تهدیدزا برای سایت ها و شبکه های تحت وب محسوب می شود.

در این تکنیک اشاره شد که نفوذگر با استفاده نادرست از بعضی دستورات مربوط به sql این امکان را به وجود می آورد در روند پردازش دیتابیس اختلالاتی به وجود آید که مهاجم با این اختلال ها قادر به بازیابی اطلاعات و داده های حساس می باشد.

امیدواریم که خواندن این مطالب برایتان مفید و لذت بخش بوده باشد؛ اگر در این زمینه به اطلاعات تخصصی تری نیاز داشتید، می توانید به وسیله شماره تلفن های موجود در صفحه به طور رایگان از کارشناسان قدس وب کمک بگیرید.

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x