آیا برای شما نیز این سوال امنیتی مطرح است که نحوه جلوگیری از هک شدن با حملات تزریق sql در وردپرس به چه صورت است؟
تزریق SQL یا SQL Injection یک آسیب پذیری امنیتی است که هکرها می توانند از آن برای حمله به پایگاه داده وب سایت شما استفاده کنند.
هنگامی که آنها این کار را انجام دهند، مهاجم می تواند داده های حساس شما را بخواند، آنها را اصلاح کند و کنترل کل پایگاه داده شما را در دست بگیرد.
در این مقاله از وبلاگ آذردیتا نکات کاربردی برای جلوگیری از حملات تزریق SQL در وردپرس را به صورت گام به گام به اشتراک می گذاریم؛ پس تا انتهای این مقاله ی جامع امنیتی با ما همراه باشید.
چرا باید از حملات تزریق SQL وردپرس جلوگیری کنیم؟
SQL مخفف Structured Query Language است که یک زبان برنامه نویسی است که با پایگاه داده سایت وردپرس شما ارتباط برقرار می کند. بدون این ویژگی، سایت شما نمی تواند محتوای پویا تولید کند.
با این حال، ورودی غیرمجاز کاربر، نرمافزار قدیمی یا افشای اطلاعات حساس میتواند باعث آسیبپذیری امنیتی شود و انجام حملات تزریق SQL را برای هکرها آسان کند.
این حمله سرور پایگاه داده شما را هدف قرار می دهد و کد یا عبارات مخرب را به SQL شما اضافه می کند. پس از انجام این کار، هکرها می توانند از اطلاعات حساس ذخیره شده در پایگاه داده شما مانند داده های کاربر برای سرقت هویت، تصاحب حساب، کلاهبرداری مالی و موارد دیگر استفاده کنند.
آنها همچنین می توانند ورودی های پایگاه داده یا مجوز حساب را تغییر دهند و حملات DDOS را انجام دهند، که بازدید از وب سایت شما را برای کاربران واقعی دشوار می کند.
این می تواند به اعتماد مشتری آسیب برساند، بر تجربه کاربر تأثیر منفی بگذارد و ترافیک وب سایت شما را کاهش دهد که برای رشد کسب و کار کوچک شما مضر است.
با این اوصاف، بیایید نگاهی به نکات عملی بیاندازیم که می توانند از حملات تزریق SQL در وردپرس جلوگیری کنند.
۱. بهروزرسانیهای سایت را به طور منظم انجام دهید و از فایروال استفاده کنید
یک راه موثر برای جلوگیری از حملات تزریق SQL، به روز رسانی منظم سایت وردپرس خود به آخرین نسخه است. این بهروزرسانیها اغلب آسیبپذیریهای امنیتی، از جمله مشکلات نرمافزار پایگاه داده را برطرف میکنند و حمله هکرها به سایت شما را دشوار میکنند.
اگر از نسخه قدیمی وردپرس استفاده میکنید، توصیه میکنیم با مراجعه به صفحه پیشخوان » بهروزرسانیها، بهروزرسانیهای خودکار را برای آخرین نسخه فعال کنید.
در اینجا، به سادگی روی پیوند «بهروزرسانی خودکار همه نسخههای جدید وردپرس را فعال کنید.» کلیک کنید. اکنون تمام به روز رسانی های اصلی پس از انتشار در سایت شما نصب می شود.
پس از انجام این کار، می توانید برای امنیت بیشتر یک فایروال نیز اضافه کنید. این ویژگی به عنوان یک سپر بین سایت شما و ترافیک ورودی عمل می کند و تهدیدات امنیتی رایج از جمله حملات SQL را قبل از رسیدن به وب سایت شما مسدود می کند.
برای این عملکرد، Sucuri را توصیه می کنیم که بهترین نرم افزار فایروال وردپرس در بازار است. این یک فایروال در سطح برنامه، پیشگیری از brute force، و همچنین خدمات حذف بدافزار و لیست سیاه ارائه می دهد که آن را به یک انتخاب عالی تبدیل می کند.
۲. نسخه وردپرس خود را مخفی کنید
یکی از موارد جلوگیری کننده از جلوگیری از هک شدن با تزریق SQL در وردپرس مخفی کردن نسخه وردپرس است.
به طور پیش فرض، وردپرس شماره نسخه فعلی نرم افزاری را که در وب سایت خود استفاده می کنید نمایش می دهد. به عنوان مثال، اگر از وردپرس ۶.۴ استفاده می کنید، این نسخه برای پیگیری در سایت شما نمایش داده می شود.
با این حال، مشاهده عمومی شماره نسخه شما میتواند باعث تهدیدات امنیتی شود و انجام حملات تزریق SQL وردپرس را برای هکرها آسانتر کند.
این به این دلیل است که هر نسخه از وردپرس دارای آسیب پذیری های منحصر به فرد خود است که مهاجمان می توانند پس از کشف نسخه شما از آنها سوء استفاده کنند. این به آنها اجازه می دهد تا قطعه کدهای مخرب را از طریق فیلدهای ورودی آسیب پذیر به سایت شما اضافه کنند.
با افزودن قطعه کد زیر به فایل functions.php خود می توانید به راحتی شماره نسخه را از سایت خود حذف کنید.
add_filter('the_generator', '__return_empty_string');
پس از انجام این کار، هکرها نمی توانند شماره نسخه وردپرس شما را از طریق اسکنرهای خودکار یا هر روش دیگری پیدا کنند.
۳. پیشوند پایگاه داده وردپرس را تغییر دهید
یکی از موثرترین راه های جلوگیری از هک شدن با تزریق SQL در وردپرس تغییر پیشوند دیتابیس وردپرس از wp به عبارتی دیگر است.
به طور پیشفرض، وردپرس پیشوند wp_ را به تمام فایلهای پایگاه داده شما اضافه میکند که برنامهریزی حمله با هدف قرار دادن پیشوند را برای هکرها آسان میکند.
ساده ترین راه برای جلوگیری از حملات تزریق SQL، تغییر پیشوند پایگاه داده پیش فرض با چیزی منحصر به فرد است که هکرها قادر به حدس زدن آن نباشند.
شما به راحتی می توانید این کار را با اتصال وب سایت خود با استفاده از FTP انجام دهید. پس از آن، فایل wp-config.php را باز کنید و خط تغییر $table_prefix را پیدا کنید. سپس، میتوانید آن را از wp_ پیشفرض به چیز دیگری مانند این تغییر دهید: wp_a123456_
$table_prefix = 'wp_a123456_';
در مرحله بعد، باید به cPanel حساب میزبانی وب خود مراجعه کنید.
صفحه phpmyadmin که باز می شود که در آن باید نام پایگاه داده خود را از ستون سمت چپ انتخاب کنید و از بالا به تب ‘SQL’ بروید.
پس از آن، می توانید پرس و جوی SQL زیر را به کادر متن اضافه کنید.
فقط به خاطر داشته باشید که پیشوند پایگاه داده را به پیشوندی که هنگام ویرایش فایل wp-config.php انتخاب کرده اید تغییر دهید.
RENAME table `wp_comments` TO `wp_a123456_comments`; RENAME table `wp_links` TO `wp_a123456_links`; RENAME table `wp_options` TO `wp_a123456_options`; RENAME table `wp_postmeta` TO `wp_a123456_postmeta`; RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`; posts` TO `wp_a123456_posts`; RENAME table `wp_terms` TO `wp_a123456_terms`; RENAME table `wp_termmeta` TO `wp_a123456_termmeta`; RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_a123456_usermeta`; RENAME table `wp_users` TO `wp_a123456_users`;
۴. اعتبارسنجی داده های کاربر
هکرها معمولاً با استفاده از فیلدهایی که برای وارد کردن دادههای کاربر مانند بخشهای نظرات یا فیلدهای فرم در فرمهای تماس استفاده میشوند، حملات SQL را به وبسایت شما تزریق میکنند.
به همین دلیل مهم است که تمام داده هایی را که در وبلاگ وردپرس شما ارسال می شود تأیید کنید. این بدان معنی است که اگر از فرمت خاصی پیروی نکند، داده های کاربر در سایت شما ارسال نمی شود.
برای مثال، اگر فیلد آدرس ایمیل نماد «@» را نداشته باشد، کاربر نمیتواند فرم خود را ارسال کند. با افزودن این اعتبارسنجی به اکثر فیلدهای فرم خود، می توانید از حملات تزریق SQL جلوگیری کنید.
برای این کار به Formidable Forms نیاز دارید که یک افزونه فرم ساز پیشرفته است. همراه با گزینه “Input Mask Format” است که می توانید قالبی را که کاربران برای ارسال داده های فیلد فرم باید دنبال کنند را اضافه کنید.
می توانید یک قالب خاص برای شماره تلفن یا فیلدهای متنی تکی اضافه کنید.
اگر نمیخواهید فیلدهای فرم خود را تأیید کنید، WPForms را توصیه میکنیم زیرا بهترین افزونه فرم تماس است که با محافظت کامل از هرزنامه و پشتیبانی Google reCAPTCHA ارائه میشود.
همچنین می توانید منوهای کشویی و چک باکس ها را با آن در فرم های خود اضافه کنید. این کار اضافه کردن داده های مخرب را برای هکرها دشوار می کند.
۵. دسترسی و مجوزهای نقش کاربر را محدود کنید
نکته دیگر برای جلوگیری از حملات تزریق SQL وردپرس این است که دسترسی کاربران به وب سایت خود را محدود کنید.
به عنوان مثال، اگر یک وبلاگ چند نویسنده دارید، نویسندگان مختلفی به همراه مشترکین و مدیران خواهید داشت. در این صورت، میتوانید امنیت سایت را با محدود کردن دسترسی کامل مدیر فقط به مدیر بهبود بخشید.
شما می توانید تمام نقش های کاربر دیگر را به عملکردهای خاصی که برای انجام کار خود نیاز دارند محدود کنید. این باعث کاهش دسترسی کاربر به پایگاه داده شما و جلوگیری از حملات تزریق SQL می شود.
می توانید این کار را با افزونه Remove Dashboard Access انجام دهید. پس از فعال سازی، به سادگی از صفحه تنظیمات » دسترسی به داشبورد دیدن کنید، جایی که می توانید تصمیم بگیرید که کدام نقش های کاربری به داشبورد دسترسی داشته باشند.
۶. پیام های خطای پایگاه داده سفارشی ایجاد کنید
گاهی اوقات کاربران شما ممکن است با یک خطای پایگاه داده در وب سایت شما مواجه شوند که می تواند اطلاعات مهمی را در مورد پایگاه داده شما نمایش دهد و آن را در برابر حملات تزریق SQL آسیب پذیر کند.
در آن صورت، توصیه میکنیم یک پیام خطای پایگاه داده سفارشی ایجاد کنید که در صورت مواجهه با این خطای رایج برای کاربران نمایش داده شود. برای انجام این کار، باید محتوای زیر را کپی کرده و در یک برنامه notepad پیست کنید و فایل را به عنوان «db-error.php» ذخیره کنید.
<?php // custom WordPress database error page header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); // 1 hour = 3600 seconds // If you wish to email yourself upon an error // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching"); ?> <!DOCTYPE HTML> <html> <head> <title>Database Error</title> <style> body { padding: 20px; background: red; color: white; font-size: 60px; } </style> </head> <body> You got problems. </body>
پس از آن، سایت خود را به یک برنامه FTP متصل کنید و فایلی را که ایجاد کرده اید در فهرست /wp-content/ سایت خود آپلود کنید.
اکنون هنگامی که کاربران با خطای پایگاه داده در وب سایت شما مواجه می شوند، فقط یک پیام خطایی می بینند که بدون افشای هیچ گونه اطلاعات حساسی، آنها را در مورد این مشکل آگاه می کند.
به علاوه، عنوان “Database Error” در برگه مرورگر وب نمایش داده می شود.
۷. عملکرد غیر ضروری پایگاه داده را حذف کنید
برای جلوگیری از حملات تزریق SQL، باید سعی کنید تمام عملکردهای پایگاه داده و فایل هایی را که در وب سایت خود نیاز ندارید حذف کنید.
به عنوان مثال، می توانید جداول غیر ضروری، سطل زباله، یا نظرات تایید نشده ای را که می توانند پایگاه داده شما را در معرض هکرها قرار دهند، حذف کنید.
برای حذف عملکرد غیر ضروری پایگاه داده، افزونه WP-Optimize را توصیه می کنیم. این یک افزونه شگفتانگیز است که جداول غیر ضروری، ویرایشهای پست، پیشنویسها، نظرات حذفشده، پستهای حذف شده، پینگبکها، ابردادههای پست و موارد دیگر را حذف میکند.
این پلاگین تمام فایل هایی را که نیاز ندارید حذف می کند و پایگاه داده شما را برای ایمن تر و سریع تر شدن بهینه می کند.
یکی دیگر از مجموعه آموزش های وردپرس به اتمام رسید. امیدواریم این آموزش به جهت آموزش نحوه جلوگیری از هک شدن با تزریق SQL در وردپرس به صورت گام به گام برای شما عزیزان مفید واقع شده باشد؛ اگر شما نیز راهکاری برای ایمن کردن سایت برای هک نشدن با SQL Injection و جلوگیری از حملات SQL Injection به روشی آسانتر بلدید میتوانید آن را در بخش کامنت ها مطرح کنید تا با نام شما این مقاله بروزرسانی گردد.