میزان پیشرفت خواندن شما
فهرست مطالب

فهرست مطالب

SQL Injection چیست و چطور از آن جلوگیری کنیم

SQL Injection چیست ؟

شاید تا به حال برای شما هم این سوال پیش آمده باشد که SQL Injection چیست که ما در این مقاله قصد داریم به صورت کامل SQL Injection  را برای شما توضیح دهیم. در واقع SQL Injection یکی دیگر از حملات امنیتی از طرف هکران به پایگاه داده وبسایت ها می باشد که با تغییر کدهای پایگاه داده و یا اضافه کردن کدهای دیگر پایگاه داده وبسایت شما را به نابودی می کشند.

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

 

SQL Injection چیست ؟

SQL  یا همان Structured Query Language یک زبان پرس و جو ساختار یافته می باشد اما SQL Injection به معنای تزریق ساختار پرس و جو به پایگاه داده می باشد. به طور کلی SQL Injection یک حمله امنیتی از سوی هکران به سایت ها می باشد، در SQL Injection به پایگاه داده سایت حمله می شود و هکران می توانند تمامی اطلاعات موجود در پایگاه داده را حذف کنند و یا اینکه تغییر دهند.

 

SQL Injection چیست ؟

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

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

 

باگ های SQL Injection چیست ؟

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

سایت هایی که از دیتابیس های SQL مانند  oracle، mysql  و sql server  استفاده می کنند بیشتر در معرض حمله SQL Injection از سمت هکرها می باشند.

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

 

باگ های SQL Injection چیست ؟

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

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

 

 مفهوم تزریق در SQL Injection چیست ؟

اگر بخواهیم بگوییم که مفهوم واژه تزریق یا همان Injection در SQL Injection چیست باید گفت تزریق به دیتابیس یا پایگاه داده نوعی از حملات به وبسایت ها می باشد که در این نوع حمله  هکر و یا شخص حمله کننده می توانند تمام دستورات مورد نظر مخرب خود را بر روی سایت هدف اجرا  کنند.

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

اکنون که به صورت دقیق می دانیم که SQL Injection چیست و چه مکانیزمی دارد نوبت به آن رسیده است که در مورد شناسایی و تشخیص آنها صحبت کنیم.

 

شناسایی حملات SQL Injection در وردپرس

برای شناسایی حملات SQL Injection در وردپرس راه های زیادی وجود دارد که یکی از این راه ها بررسی فایل Error-log  موجود در فایل روت سایت می باشد که معمولا با نام Public -Html  هم شناخته می شود.

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

شناسایی حملات SQL Injection در وردپرس

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

 

انواع حملات SQL Injection چیست

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

 

حمله SQL Injection کلاسیک

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

 

حمله UNION یا اجتماع

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

 

حمله Blind SQL Injection

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

حمله Blind SQL Injection

 

همچنین این حمله بسیار زمان بر بوده ولی همیشه با بهترین نتایج همراه است چون با استفاده از فایروال ها هم از آن نمی توان جلوگیری کرد و بر روی همه ی دیتابیس ها قابل اجرا می باشد که در این نوع حمله تمام کارها با TRUE  و FALSE  انجام می شود و کاراکتر به کاراکتر همه ی دیتاها را استخراج می کند.

 

حمله ERROR

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

 

عملکرد وردپرس در برابر حملات SQL Injection چیست؟

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

به عنوان مثال یک اشتباه بسیار کوچک در المان های فرم می توانند آسیب حمله را بیشتر کنند بنابراین باید از راه های امنیتی خوبی برای سایت خود استفاده کنید.

عملکرد وردپرس در برابر حملات SQL Injection چیست؟

در واقع یک حمله موفق SQL Injection می تواند به راحتی باعث لو رفتن تمام اطلاعات مهم موجود در پایگاه داده شود و اطلاعات کاربران توسط هکرها از بین بروند و یا اینکه فاش شوند !

 

راه های پیشگیری و مقابله با حملات SQL Injection چیست ؟

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

 

بررسی اطلاعات ورودی

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

 

بررسی اطلاعات با روش پرس و جو

یک دیگر از روش هایی که برای  جلوگیری از حملات SQL Injection  استفاده می شود بررسی اطلاعات به روش پرس و جو می باشد که در این روش اطلاعات به صورت مجزا بررسی می شوند. بررسی اطلاعات با روش پرس و جو باعث می شود سرعت، امنیت و کارآیی سایت در زمان حملات SQL Injection بالا برود.

 

بررسی پیام های داخل سایت

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

 

بروز رسانی پایگاه داده و محتوای سایت

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

 

بررسی دسترسی کاربران به بانک های اطلاعاتی

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

 

بالا بردن امنیت سایت و هاست

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

 

 استفاده از رمز عبور های قوی

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

 

مخفی کردن خطا های سایت

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

 

تغییر پیشوند جدول های پایگاه داده

در زمان ایجاد جداول پایگاه داده خود پیشوند جدول پایگاه داده را از WP-  به نام دیگری تغییر دهید و احتمال حمله هکرها را غیرممکن بسازید چون همه هکرها از این پیشوند پیش فرض برای دسترسی به پایگاه داده استفاده می کنند.

 

نصب قالب و افزونه معتبر

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

 

استفاده از WAF  فایروال

یکی دیگر از راه هایی که از ورود هکرها به پایگاه داده سایت می تواند جلوگیری کند استفاده از Waf  فایروال و اپلیکیشن وب آن می باشد.

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

 

نتیجه گیری

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

به طور کلی حملات SQL Injection به چنددسته تقسیم شدند که در ادامه برای پیشگیری از آنها راه حل هایی را ارائه دادیم که با رعایت آنها احتمال حمله SQL Injection را از سوی هکرها به صورت قابل توجهی می توان کاهش داد.

2 پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *