بدون شک بحث امنیت در فضای مجازی برای بسیاری از صاحبان وبسایتها و حتی کاربران آنها از جمله موارد مهمی است که در وهله اول باید به آن توجه ویژهای شود. تمام اعتبار یک کسب و کار اینترنتی ممکن است در یک چشم به هم زدن زیر سوال رود و فقط به خاطر اینکه سایت از لحاظ امنیتی عملکرد ضعیفی داشته است.
همانطور که در بسیاری از مقالات قبلی در مگاتم مطرح کردیم وردپرس امروزه برای راهاندازی سریع یک کسب و کار اینترنتی بیش از حد مورد استقبال قرار گرفته است. بنابراین اختصاص مقالهای در خصوص امنیت وبسایت وردپرس خالی از لطف نخواهد بود.
در ادامه نابترین تکنیکهای موجود برای امنیت سایت وردپرس را معرفی میکنیم تا بتوانید حملات فیشینگ و هکرها را به حداقل برسانید.
اگرچه هسته اصلی وردپرس بسیار امن است و هر روز توسعهدهندگان زبردستی برای امنیت آن در تلاش هستند، اما هنوز هم میتوان با اقدامات متعددی نفوذ به این هسته را سختتر و سختتر نمود.
در واقع میتوان گفت امنیت تنها به از بین بردن احتمال خطر نفوذ خلاصه نمیشود. بلکه باید این احتمال را به پایینترین حد ممکن خود کاهش داد. البته نگران نباشید حتی اگر آشنایی چندانی با کد نویسی یا اصطلاحات تخصصی در این حوزه نداشته باشید در این آموزش راههایی برای امنیت بیشتر میتوانید پیدا کنید.
چرا امنیت وردپرس مهم است؟
هک شدن یک سایت وردپرس اعتبار و درآمد شما را به شدت تهدید میکند. در واقع هکرها در این حالت به راحتی تمامی اطلاعات کاربران اعم از رمز عبور و … میدزدند و با نصب نرمافزارهای مخرب و یا تزریق بدافزارها به سیستمهای کاربران وبسایت شما سعی در اخلال در روند عادی سایت مینمایند.
مشکل زمانی حادتر میشود که برای پس گرفتن کنترل وبسایت خودتان مجبور با پرداخت باج به هکرها شوید!
طبق گزارشی از طرف گوگل در مارس 2016، به بیش از 50 میلیون کاربر اینترنتی هنگام بازدید از وبسایتها هشدار داده شد که ممکن است سایتی که در حال بازدید از آن هستند حاوی بدافزار باشد و اطلاعات آنها را به سرقت ببرد.
اگر وبسایت شما برای خرید و فروش محصول و یا خدمات باشد توجه به امنیت وبسایت وردپرس در آن باید دو چندان شود. همانطور که مدیر یک فروشگاههای واقعی در سطح بازار مسئول امنیت اجناس خود در مغازه است، شما نیز موظفید برای برقراری امنیت در سایت وردپرس خود تمهیدات لازم را بیاندیشد.
همیشه نسخه وردپرس وبسایت خود را بهروز نگهدارید
وردپرس یک نرمافزار متن باز است که به طور مرتب به روزرسانی و نگهداری میشود. به طور پیشفرض وردپرس تنها آپدیتهای کم حجم و کوچک را به طور خودکار انجام میدهد. برای نصب نسخههای جدید این نرمافزار که حاوی آپدیتهای با حجم بالاست باید به صورت دستی اقدام به نصب نمایید.
همچنین وردپرس دارای هزاران افزونه و قالب است که میتوانید در وبسایت خود از آنها استفاده نمایید. این افزونهها و قالبها توسط توسعهدهندگان در سراسر دنیا نوشته میشوند و به صورت روزانه این افراد نسخهها و آپدیتهای جدیدی برای آنها مینویسند.
تمامی این آپدیتها و نسخههای بهروز شده برای امنیت وبسایت وردپرس شما حیاتی هستند. در نتیجه همیشه مطمئن باشید که آخرین نسخههای وردپرس، افزونهها و قالبها را دانلود و نصب کرده باشید.
استفاده از رمز عبور قوی و بررسی میزان دسترسی کاربران
بیشتر تلاشهایی که برای نفوذ به وبسایتهای وردپرسی انجام میشود از طریق سرقت رمزهای عبور صورت میپذیرد. اما شما میتوانید به راحتی با استفاده از رمزهای قوی و ترکیب کاراکترهای مختلف و همچنین رمزهای عبوری که در هیچ جای دیگری استفاده نمیکنید، این کار را به مراتب برای افراد سودجو سخت و حتی غیر ممکن نمایید.
البته منظور از رمز عبور در اینجا فقط رمز عبوری را که برای کاربر admin در نظر میگیرید نیست. تمامی رمزهای دیگر مانند رمز اکانت FTP، دیتابیس، هاستی که برای وبسایت وردپرس خود استفاده میکنید و آدرس ایمیل اصلی خود را به دقت انتخاب کنید و سعی کنید تمامی آن ها از هم متفاوت باشند تا در صورت دسترسی هکرها به یکی از آنها اکانتهای دیگر نیز قابل دسترسی نباشند.
شاید یکی از دلایلی که کاربران تازهکار از رمز قوی استفاده نمیکنند این باشد که به خاطر سپاری اینگونه رمزها سخت باشد. خوشبختانه در حال حاضر وجود نرمافزارهای مدیریت پسورد این مشکل را نیز برطرف کردهاند.
نکته دیگری که باید در اینجا به آن اشاره کنیم و برای کاهش احتمال نفوذ به وبسایت بسیار حائز اهمیت است این است که به هیچ وجه به کسی اجازه دسترسی به اکانت admin وردپرس خود را ندهید مگر اینکه در موارد خیلی ضروری مجبور به این کار شوید. همچنین هنگامی که نویسندگانی را برای وردپرس خود تعیین میکنید حتما از میزان دسترسیها و قوانین مربوط به اعطای دسترسی کاربران آگاه باشید.
نقش سرویسهای میزبانی وب (هاست) در امنیت وردپرس
شرکتهای ارائه خدمات میزبانی و هاستینگ نقش بسیار مهمی در امنیت سایت وردپرس شما ایفا میکنند. بسیاری از شرکتهایی که سرویسهای هاست اشتراکی را ارائه میدهند اقدامات ویژهای برای جلوگیری از نفوذها و اقدامات هکرها انجام میدهند.
با این حال در هاستهای اشتراکی منابع و فضا بین بسیاری از وبسایتها به اشتراک گذاشته شده است. این مسئله باعث میشود که نفوذ به سایتهای به اصطلاح همسایه با سایت شما احتمال نفوذ به وبسایت شما را هم بالا ببرد.
استفاده از سرویسهای هاستینگ وردپرس به صورت کاملا مدیریت شده که توسط برخی شرکتها ارائه میشود میتواند تا حد زیادی قابل اعتمادتر باشد و امنیت وبسایت را بالا ببرد. این شرکتها در این نوع سرویس خدماتی را مانند: پشتیبانگیری خودکار، آپدیت خودکار وردپرس و تنظیمات امنیتی پیشرفته را انجام میدهند که در نهایت منجر به ایمنی بیشتر خواهد شد.
امنیت وردپرس در چند مرحله ساده (بدون کد نویسی)
بدون شک امنیت وبسایت وردپرس برای افراد مبتدی کاری ترسناک و دشوار به نظر میرسد. مخصوصا اگر با دنیای تکنولوژی قهر باشند. اما نگران نباشید ما برای همین اینجا هستیم.
ما به شما نشان خواهیم داد که تنها با چند کلیک ساده تا چه حد میتوانید به امنیت سایت وردپرس خود کمک کنید و جالب اینکه هیچ نیازی به کدنویسی ندارید.
از افزونههای پشتیبانگیری وردپرس غافل نوشید
در واقع میتوان گفت اولین سپر دفاعی شما در مقابل نفوذ هکرها پشتیبانگیری از وبسایت وردپرس است. هیچ چیزی در فضای مجازی کاملا ایمن نخواهد بود. اگر سایتهای بزرگ دولتی قابلیت هک شدن دارند سایت شما نیز از این قاعده مستثنی نیست.
این نسخههای بکاپ به شما کمک میکنند که اگر اتفاق ناگواری برای سایت ورپرس رخ داد به سرعت بتوانید سایت را برگردانید.
افزونهای رایگان و پولی بسیاری برای پشتیبانگیری از وبسایت وردپرس وجود دارند که میتوانید از آنها استفاده کنید. نکته مهمی که در ارتباط به بکاپگیری وبسایت وردپرس وجود دارد این است که شما باید به صورت منظم و پی در پی از وبسایت خود بکاپ تهیه کنید و آن را در جایی خارج از هاست وبسایت ذخیره نمایید.
گزینههای خوبی که در این رابطه میتوان پیشنهاد کرد سرویسهایی هستند که از فضای کلاود استفاده میکنند مانند آمازون، DropBox و … .
با توجه به اینکه وبسایت شما در روز و یا هفتگی چندبار آپدیت میشود، عمل بکاپگیری نیز میتواند از روزانه تا لحظهای متغیر باشد. به نظر کاری سخت و طاقت فرسا است اما نگران نباشید افزونههایی مانند VaultPress و BackupBuddy این کار را به راحتی برای شما انجام میدهند. این افزونهها هم قابل اعتماد هستند و هم کار با آنها بسیار آسان است.
بهترین افزونه امنیتی برای وردپرس
پس از بکاپگیری اقدام بعدی که برای امنیت وبسایت وردپرس میتوان انجام داد این است که یک سیستم نظارت و بررسی بر روی وردپرس خود نصب کنید تا تمامی اعمالی که در سایت اتفاق میافتد را رصد و گزارش کند.
این اقدامات شامل نظارت بر کامل بودن فایلها در هنگام ارسال و دریافت، تلاشهای ناموفق ورود به سیستم، جستجوی بدافزارها و … میشود.
تمامی این نظارتها به لطف وجود افزونه رایگان Securi Security به نحو احسن قابل انجام است. بنابراین این افزونه را نصب نمایید تا از امکانات بینظیر آن بهرهمند شوید.
بعد نصب و فعالسازی این افزونه با اکانت admin خود وارد منوی افزونه شوید در این حالت منوی زیر را مشاهده میکنید:
پس از آن اولین کاری که باید انجام دهید تولید یک API key است که با انجام این کار تمامی امکانات گفته شده برای این افزونه برای شما فعال میشود.
کار بعدی که باید انجام دهید این است که بر روی گزینه Hardening در منوی Securi کلیک کنید. در اینجا گزینههایی برای انتخاب وجود دارد که میتوانید با کلیک بر روی Apply Hardening که در تصویر مشخص است هر کدام از این گزینهها را که از نقاط کلیدی برای نفوذ هکرها هستند قفل نمایید.
تنها گزینهای که باید برای فعالسازی قفل آن از نسخه پولی این افزونه استفاده کنید گزینه Website Firewall Protection است که در بخش بعدی آن را توضیح میدهیم.
در ادامه مقاله به گزینههای دیگری که برای امنیت بیشتر در وبسایت وردپرس وجود دارد و شخص به راحتی بدون استفاده از افزونه قادر به انجام آن است خواهیم پرداخت. همچنین کسانی که مایل به طی مراحلی اضافه برای امنیت بیشتر هستند در ادامه میتوانند با مواردی مانند «تغییر پیشوند دیتابیس» و «تغییر نام کاربری Admin» آشنا شوند.
پس بخش Hardening در این افزونه بخشهای دیگر با همان تنظیمات پیشفرض قابل استفاده هستند و نیازی به تغییر ندارند. تنها چیزی که برای سفارشیسازی افزونه پیشنهاد میشود، هشدارهای ایمیل است.
حالت پیشفرض هشدارهای ایمیل به نحوی است که به راحتی صندوق ورودی ایمل شما را خیلی سریع شلوغ میکند و با خیل عظیمی از ایمیلها مواجه خواهید شد. توصیه ما این است که تنها دریافت ایمیلهایی را فعال نمایید که به فعالیتهای کلیدی وبسایت مرتبط هستند مانند تغییرات خود افزونه، ثبت نام کاربر جدید و … . شما میتوانید این تنظیمات را با رفتن به قسمت Setting>>Alert در افزونه Securi به راحتی تغییر دهید.
این افزونه امنیتی در وردپرس بسیار قدرتمند است به همین جهت به همه قسمتهای افزونه سر بزنید و با آنها آشنا شوید.
فعال کردن قابلیت (Web Application Firewall (WAF
راحتترین راه برای حفاظت از یک سایت وردپرس و اطمینان از امنیت آن استفاده از web application firewall است. Firewall در واقع تمام ترافیکهای مخرب را قبل از اینکه به سایت شما دسترسی پیدا کند مسدود مینماید.
در اینجا نیز برای این منظور افزونه Securi بهترین گزینه برای فعال کردن firewall در یک سایت وردپرس است. مزیتی که Firewall افزونه Securi دارد این است که بدافزارها را شناسایی و پاک میکند و تضمین مینماید لیست سیاه از مواردی را که باید حذف شوند در اختیار قرار میدهد. اساسا هنگامی که با وجود این Firewall سایت شما هک شود آنها تضمین میکنند که وبسایت شما را بازیابی کنند.
این یک گارانتی بسیار قوی و ارزشمند محسوب میشود زیرا هزینه برگرداندن یک وبسایت هک شده و آسیب دیده بسیار بالاست. بنابراین خرید نسخه پولی این افزونه برای گرفتن این گارانتی معقول به نظر میرسد.
چند نکته مهم جهت امنیت وبسایت وردپرس برای کاربران حرفهای
اگر شما فردی تقریبا حرفهای در زمینه وردپرس هستید و تمام اقداماتی را که در مراحل قبل شرح داده شد را از قبل انجام دادهاید، هنوز هم نکاتی وجود دارند که به امنیت وبسایت وردپرس شما کمک زیادی خواهند کرد. تعدادی از این نکات مستلزم دانش کدنویسی هستند.
تغییر نام کاربری Admin
در گذشته نام کاربری که برای مدیر سایت توسط وردپرس در نظر گرفته میشد دقیقا کلمه «admin» بود. همانطور که میدانید نام کاربری نیمی از اطلاعات لازم برای ورود به سیستم را تشکیل میدهد و این مورد باعث شده بود که هکرها راحتتر بتوانند حملات خود را انجام دهند زیرا در این صورت تنها نیاز به رمز عبور داشتند.
خوشبختانه وردپرس این نقطه ضعف را رفع نمود و در حال حاضر هنگام نصب از شما درخواست میکند که یک نام کاربری دلخواه برای اکانت خود در نظر بگیرید.
با این وجود بسیاری از Installerهایی که برای نصب آسان وردپرس وجود دارند نام کاربری را همان admin در نظر میگیرند. به طور پیشفرض هم امکان تغییر نام کاربری admin برای شما وجود ندارد. اما با چند روش ساده زیر میتوان این کار را انجام داد:
- ساختن یک کاربر مدیر جدید و حذف کاربر قبلی
- استفاده از افزونههایی که مخصوص این کار ساخته شدهاند
- تغییر نام کاربری در محیط phpMyAdmin
نکته: منظور ما در اینجا مشخصا کاربری است که با نام کاربری «admin» در سیستم شما وجود دارد و با نقش «administrator» که در وردپرس تعریف شده کاری نداریم.
غیر فعال کردن قابلیت ویرایش فایل
در داخل خود وردپرس ویرایشگری جهت ویرایش کدهای قسمت قالبها و افزونهها وجود دارد و شما قادر هستید در حالت admin قسمتهای مختلف را توسط این ویرایشگر تغییر دهید. از جنبه امنیتی این ویژگی میتواند خطرناک ظاهر شود به همین دلیل توصیه ما این است که این قابلیت را غیر فعال نمایید.
برای این کار به آسانی قطعه کد زیر را به فایل wp-config.php وردپرس خود اضافه نمایید.
1
2
|
// Disallow file edit define( 'DISALLOW_FILE_EDIT' , true ); |
همچنین میتوانید از افزونه Securi که در بالا توضیح دادیم اینکار را با یک کلیک ساده انجام دهید.
غیر فعال کردن اجرای فایلهای PHP در پوشههای خاصی در وردپرس
یکی دیگر از مواردی که میتوان برای امنیت وبسایت وردپرس به کاربرد غیر فعال کردن اجرای فایلهای PHP در مسیرها و پوشههایی است که نیازی به اجرای کد در آنها نیست مانند wp-content/uploads/.
برای این منظور میتوانید قطعه کد زیر را در یک فایل text مانند Notepad بنویسید.
<Files *.php>
deny from all
</Files>
سپس این فایل را با پسوند .htaccsess ذخیره کنید و آن را در پوشه wp-content/uploads/ از طریق FTP یا پنل مدیریت سایت خود آپلود کنید.
محدود کردن تعداد دفعات مجاز برای ورود ناموفق به سیستم
در حالت پیشفرض وردپرس محدودیتی برای تعداد دفعات وارد کردن رمز عبور و نام کاربری اشتباه ایجاد نکرده است و شما به صورت نامحدود میتوانید اقدام به ورود به سیستم نمایید. این ویژگی به خودی خود باعث افزایش احتمال نفوذ به وبسایت وردپرسی شما میشود. هکرها با ترکیب رمزهای مختلف تلاش میکنند به سیستم نفوذ نمایند.
این مشکل را میتوان با محدود کردن تعداد دفعات مجاز برای ورود ناموفق کاربران به سیستم حل نمود. اگر از web application firewall که در ابتدای همین مقاله توضیح داده شد استفاده میکنید این ویژگی به صورت خودکار بر روی سیستم شما فعال میشود.
اما اگر از firewall استفاده نمیکنید عملیات زیر را به ترتیب دنبال نمایید.
قبل از هر چیز افزونه Login LockDown را نصب و فعال نمایید. پس از فعالسازی افزونه به قسمت Setting>>Login LockDown در منوی افزونه بروید. در این قسمت مشاهده میکنید که به راحتی میتوان تنظیمات مربوط به تعداد دفعات ناموفق ورود به سیستم را به دلخواه تغییر دهید.
تغییر پیشوند دیتابیس وردپرس
در حالت پیشفرض وردپرس از پیشوند wp_ برای همه جداولی که در دیتابیس وجود دارد استفاده میکند. این خاصیت باعث میشود هکرها بتوانند نام جداول دیتابیس را به راحتی حدس بزنند و برای نفوذ از آن کمک بگیرند. به همین دلیل توصیه میشود برای امنیت وبسایت وردپرس این پیشوند را تغییر دهید.
نکته: تغییر این پیشوند اگر به صورت نادرست انجام شود ممکن است سایت را با مشکل مواجه کند بنابراین تنها در صورتی این کار را انجام دهید که تجربه لازم برای آن را داشته باشید.
استفاده از رمز عبور برای صفحات Login و Admin در سایت وردپرس
در حالت کلی هکرها میتوانند مسیرها و پوشه wp-admin و Login را از سرور درخواست کنند و اطلاعات آن را ببینند. شما میتوانید با ایجاد رمز عبور بر روی این صفحات در سمت سرور درخواستهای آنان را مسدود نمایید.
غیر فعال کردن قابلیت جستجو در دایرکتوریها و دیدن پوشههای سیستم
امکان جستجو در فایلها و دایرکتوری سایت به هکرها اجازه میدهد تا به دنبال فایلهایی بگردند که احتمال نفوذ دارند و از مزایایی که این فایلها در اختیار آنها قرار میدهد برای نفوذ به سیستم استفاده کنند.
همچنین این قابلیت به کاربران سایت اجازه میدهد به راحتی فایلهای شما و ساختار پوشهبندی سایت شما را ببینند و تصاویر موجود در سایت را کپی کنند. به همین دلیل شدیدا توصیه میشود این قابلیت را غیر فعال نمایید.
برای این منظور به با استفاده از FTP یا پنل مدیریت سایت خود متصل شوید و در آنجا به دنبال فایل .htaccess بگردید که در پوشه root قرار دارد. این فایل را باز کنید و خط زیر را به انتهای دستوراتی که در این فایل وجود دارد اضافه کنید.
Options -Indexes
فراموش نکنید در آخر فایل را ذخیره و مجددا در پوشه root کپی نمایید به این صورت یک مرحله دیگر امنیت وبسایت وردپرس خود را افزایش داده اید.
غیر فعال کردن XML-RPC در وردپرس
XML-RPC خاصیتی است که به صورت پیشفرض در وردپرس نسخه 3.5 است و به سایت وردپرس شما این قابلیت را میدهد که راحتتر با اپلیکیشنهای موبایل و وب ارتباط برقرار کند.
XML-RPC به خاطر ماهیت قدرتمندی که دارد باعث میشود تا حد زیادی احتمال نفوذ را برای هکرها بیشتر کند.
برای مثال قبلا اگر هکری میخواست 500 رمزعبور مختلف را بر روی سایت وردپرس امتحان کند، مجبور بود 500 درخواست ورود مجزا را ارسال نماید که توسط افزونههایی مانند Login LockDown به راحتی مسدود میشدند و ناکام میماند.
اما با استفاده از XML-RPC هکر میتواند با استفاده از تابع system.multicall هزاران پسورد را تنها با 20 الی 50 درخواست ورود امتحان نماید.
بنابراین اگر از قابلیتهای XML-RPC استفاده نمیکنید حتما آن را غیر فعال نمایید. راحتترین راه برای غیرفعال کردن آن هم استفاده از فایل .htaccess است.
خارج کردن کاربران غیر فعال سیستم
یکی از کارهای دیگری که برای امنیت وبسایت وردپرس میتوان انجام داد این است که کاربرانی که وارد سیستم شدهاند اما در حال حاضر با سیستم کار نمیکنند و مشغول انجام کارهایی دیگری خارج از وبسایت هستند به طور خودکار از سیستم خارج کنید. چون در این حالت هکرها و افراد سودجو میتوان به اطلاعات نشستها و رمزهای عبور آنها دسترسی پیدا کنند و یا اطلاعات پروفایل و حساب آنها را تغییر دهند.
دقیقا به همین دلیل است که برخی وبسایتهای دولتی پس از سپری شدن زمان مشخصی اگر با وبسایت آنها کار نکنید شما را از سیستم خارج میکنند و شما برای ورود باید دوباره نام کاربری و رمز عبور خود را وارد نمایید.
شما میتوانید با افزونه Idle User Logout چنین امکانی را برای وبسایت وردپرس خود فراهم نمایید. بنابراین افزونه را دانلود نمایید و پس از نصب و فعالسازی وارد قسمت Setting>>Idle User Logout شوید تا بتوانید تنظیمات لازم را به دلخواه انجام دهید.
در این قسمت مدت زمان منقضی شدن نشست کاربر با سیستم را تعیین کنید و برای افزایش امنیت وبسایت وردپرس خود تیک گزینه Disable in WP Admin را بردارید. در نهایت تغییرات را ذخیره کنید.
افزودن سوال امنیتی در قسمت ورود به پنل وردپرس
شما میتوانید در صفحه ورود به پنل کاربری یک سوال امنیتی برای جلوگیری از دسترسی غیر مجاز به سیستم تعیین نمایید.
برای این منظور افزونه WP Security Questions را نصب کنید و پس از فعالسازی آن وارد قسمت Settings » Security Questions page شوید و تنظیمات لازم را انجام دهید.
برگرداندن سایت وردپرس هک شده
بسیاری از کاربران و صاحبان سایت تا زمانی که سایتشان هک نشود به اهمیت بکاپگیری و امنیت وبسایت وردپرس خود آن چندان اهمیتی نمیدهند.
بازگرداندن سایت وردپرس کاری به مراتب دشوار و زمانبر است به همین دلیل اولین توصیه ما این است که حتما تمامی موارد امنیتی را به بهترین شکل ممکن برای وبسایت وردپرس خود در نظر بگیرید.
هکرها معمولا پس از هک یک سایت راههای نفوذ و یا برگشت را که اصطلاحا backdoors نام دارد را برجای میگذارند تا دوباره بتوانند آن سایت را هک نمایند. بنابراین اگر این backdoors ها شناسایی و بسته نشوند آنها بارها و بارها سایت شما را هک میکنند.
شرکتهایی مانند Securi میتوانند تضمین کنند که تمامی باگهای سایت و راههای نفوذ به سایت شما را شناسایی و مسدود میکنند و حملات هکرها در آینده را نیز خنثی خواهند کرد.