مقالات وبوردپرس

هک سایت وردپرسی از طریق SQL Injection چیست؟

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

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

وردپرس چگونه کار می کند؟

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

  • هر سایت وردپرسی دارای پایگاه داده ای است.
  • مواردی که بر روی وردپرس نصب می شود از MySQL به سیستم مدیریت پایگاه داده پیش فرض استفاده می نماید.
  • وردپرس از کوئری های SQL برای دریافت داده ها از پایگاه داده سایت استفاده می کند
  • توسعه دهندگان از PHP و این کوئری ها برای دیدن، اضافه کردن، بیرون کشیدن، تغییر دادن یا پاک کردن کدهای داخل پایگاه داده استفاده می کنند.

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

 هکرها چگونه از پایگاه داده وردپرس استفاده می کنند؟

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

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

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

در طول SQL Injection چه اتفاقی رخ می دهد:

دو روش برای طبقه بندی SQL Injection وجود دارد:

SQLi کلاسیک:

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

Blind SQLi:

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

 آیا وردپرس می تواند کاری در برابر این حملات انجام دهد؟

خوب حالا که نحوه رخ دادن چنین حمله ای را در سطح پایگاه داده مشاهده کردید ممکن است با خود فکر کنید که وردپرس می تواند با چنین شرایطی مبارزه کند یا خیر. واقعیت این است که وردپرس در حال حاضر خود را برای چنین مواردی آماده کرده است. وردپرس از سیستم تایید و معتبر کردن داده ها استفاده می کند. با اینحال هرچقدر سیستم مدیریت محتوایی شما برای مقابله با این تهدیدات موثر عمل کند باز هم مشکلاتی وجود خواهد داشت. در ابتدا باید بدانید که خود وردپرس در برابر SQL injections صد در صد امن نیست. در اکتبر سال ۲۰۱۷ وردپرس نسخه امنیتی ۴٫۸٫۳ خود را منتشر کرد. در این نسخه اسیب پذیری SQLi موجود در وردپرس برطرف شده است. با اینکه در چنین شرایطی ممکن است هسته اصلی وردپرس آلوده نشود اما افزونه ها و قالب های زیادی در سایت وجود دارد که ممکن است تحت تاثیر چنین شرایطی قرار گیرد.

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

 چگونه برای داشتن سایت وردپرسی امن تر، از بروز SQL Injections پیشگیری کنیم؟

خوب حالا به بخش جذاب ماجرا رسیده ایم. شما باید دست به کار شوید و همه نکاتی که در ادامه بیان می کنیم را یادداشت نمایید:

 از افزونه ها و قالب های قابل اعتماد استفاده کنید:

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

 هر چیزی که در سایت تان وجود دارد را به روزرسانی کنید:

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

 انواع ورودی های فیلد خود را محدود نمایید:

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

پیشوندهای پایگاه داده خود را تغییر دهید:

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

 از WAF استفاده کنید:

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

 همه فعالیت های مرتبط با پایگاه داده را ثبت نمایید:

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

نتیجه گیری:

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

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

5/5 - (1 امتیاز)
برچسب ها

نوشته های مشابه

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

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

بستن