افزایش امنیت سایت وردپرسی مسئلهای است که از لحظه نصب وردپرس با آن سروکار داریم. قسمت غمانگیز ماجرا آنجاست که متاسفانه حتی در برخی سایتهای معروف با قدمت بالا، موارد امنیتی توسط مدیر سایت رعایت نمیشود و بخاطر عدم آگاهی، مشکلات امنیتی را به وردپرس نسبت میدهند.
فرض کنید یک دزدگیر گران قیمت و حساس برای خانه خود خریدهاید ولی فراموش کردهاید آن را روشن کنید! اگر وسایل خانه سرقت شود، اشکال از دزدگیر است یا خودتان سهلانگاری کردهاید؟
توسعه دهندگان وردپرس در آپدیتهای مختلف، اشکالات امنیتی آن را برطرف کردهاند و امروزه وردپرس به عنوان یک CMS با امنیت بالا شناخته میشود. البته به شرط آنکه روشهای افزایش امنیت سایت وردپرسی که در این مقاله گفته شده را با دقت در سایت وردپرسی پیادهسازی کنید.
اگر همچنان به امنیت وردپرس شک دارید، در مقاله “سایتهای وردپرسی معروف” لیست برندهای بزرگی مثل ایرانسل را ببینید که سایت خود را با وردپرس طراحی کردهاند. انتخاب وردپرس برای چنین برندهایی، از روی عدم آگاهی است؟ قطعا اینگونه نیست! پس چرا می گویند وردپرس امن نیست؟
وردپرس محبوبترین سیستم مدیریت محتوا در دنیا است. به همین دلیل توجه هکرها را به خود جلب کرده است. آنها ترجیح میدهند روی هک سایتهای وردپرسی تمرکز کنند تا بتوانند به سایتهای بیشتری نفوذ پیدا کنند.
مسئله امنیت، برای همه سایتها نسبی است. پس نه تنها برای سایتهای وردپرسی، بلکه برای هیچ سایت دیگری نمیتوان از امنیت صد در صدی حرف زد. اما با انجام ” روشهای افزایش امنیت وردپرس” که در این مقاله گفته شده، درصد نفوذ هکرها بسیار کم میشود.
سایت من نوپا است، چه دلیلی دارد هک شود؟
در اکثر موارد هدف هکرها، سرقت اطلاعات سایت شما یا از بین بردن کسب و کارتان نیست! افراد مهاجم اهداف دیگری نیز دارند. گاهی هدفشان استفاده از منابع سرور برای ارسال ایمیل اسپم است. گاهی هدفشان استخراج بیت کوین با استفاده از مرورگر بازدیدکنندگان سایت است. حتی گاهی بدون دلیل به گروهی از سایتها حمله میکنند! پس در هر مرحله از کسب و کار اینترنتی که هستید، بالا بردن امنیت سایت وردپرسی، جز واجبات است.
چرا بالا بردن امنیت وردپرس مهم است؟
اگر سایتی هک شود، آسیبهای زیادی به آن وارد میشود. آسیبهایی که گاهاً جبرانناپذیر هستند. بعد از نفوذ به سایت، هکر به اطلاعات سایت شما دسترسی خواهد داشت. از اطلاعات کاربران سواستفاده میکند و در نتیجه به برند شما آسیب میزند. اگر کاربران متوجه هک سایت شوند، جلب اعتمادشان بسیار سخت یا حتی غیرممکن است.
گاهی در ظاهر هیچ اتفاقی نیفتاده ولی کدها و نرمافزارهای مخربی روی سایتتان نصب شده که اهداف مختلفی دارند.
از طرفی، گوگل سایتهای هک شده را از نتایج جستجو حذف میکند و بازگشت به نتایج اصلاً کار سادهای نیست! پس آسیب جدی به سئو سایت میزند.
بنابراین آموزش امنیت سایت وردپرسی یکی از دغدغههای اصلی مدیران سایت است که در ادامه به آن خواهیم پرداخت. پیادهسازی این روشها منجر به افزایش امنیت وبسایتهای مختلف از جمله افزایش امنیت فروشگاه های اینترنتی میشود.
روش های افزایش امنیت سایت وردپرسی
1. استفاده از شرکت هاستینگ معتبر
تاثیر هاست روی امنیت سایت وردپرس بسیار زیاد است. یک شرکت هاستینگ خوب، لایههای مختلفی از امنیت را برای حفاطت از سرور خود ایجاد میکند. پس در اولین قدم برای افزایش امنیت سایت وردپرسی، از یک هاست معتبر استفاده کنید.
2. فعالسازی گواهی SSL
وظیفه اصلی SSL، رمزنگاری اطلاعاتی است که بین مرورگر کاربر و سرور منتقل میشوند. اگر اس اس ال سایت فعال نباشد، اطلاعات به صورت متن ساده منتقل میشوند و توسط هکرها قابل خواندن هستند. پس با نصب گواهینامه SSL می توانید امنیت سایت خود را افزایش دهید. حتما مطمئن شوید که SSL سایتتان فعال است و به جای پروتکل http از پروتکل https استفاده میکنید.
3. تغییر پیشوند جداول وردپرس
به صورت پیش فرض، پیشوند جدولهای وردپرس _wp است. یکی از روشهای افزایش امنیت وردپرس بدون افزونه، تغییر پیشوند جداول وردپرس است. در هنگام نصب وردپرس، از شما پرسیده میشود که تمایل دارید پیشوند جداول وردپرس را چه عبارتی بگذارید.
اگر در هنگام نصب، پیشوند جداول را تغییر ندادهاید، اصلاً نگران نباشید. قبل از هر کاری از اطلاعات سایت بکاپ بگیرید تا مطمئن باشید اطلاعات سایت را از دست نخواهید داد. سپس روی فایل منیجر هاست کلیک کرده و فایل wp_config.php را پیدا کنید. با راست کلیک، گزینه edit را بزنید. عبارت table_prefix$ را پیدا کنید. احتمالا چنین عبارتی را میبینید:
$table_prefix = 'wp_';
یعنی در حال حاضر، پیشوند جداول وردپرس wp است. یک عبارت دلخواه را با wp جایگزین و تغییرات را ذخیره کنید. این عبارت، از این به بعد، پیشوند جداول شما خواهد بود. تبریک میگویم! شما یک قدم دیگر در راستای افزایش امنیت سایت وردپرسی خود برداشتید.
4. افزایش امنیت صفحه ورود وردپرس
صفحه ورود وردپرس از لحاظ امنیت بسیار مهم است. برای جلوگیری از حملات DDos و هک وردپرس، باید امنیت این صفحه را بالا ببریم تا هرکسی به راحتی نتواند وارد پیشخوان سایت شود. برای افزایش امنیت صفحه ورود وردپرس، حتما موارد زیر را انجام دهید تا از هک پنل مدیریت سایت جلوگیری کنید:
- تغییر آدرس صفحه ورود به مدیریت وردپرس
به صورت پیش فرض، آدرس ورود به مدیریت وردپرس، Yoursite.com/wp-admin یا Yoursite.com/wp-login.php است. اگر این آدرس را تغییر ندهید، دسترسی به صفحه ورود برای همه آسان است. هکرها از این فرصت استفاده کرده و با وارد کردن نام کاربری و پسوردهای مختلف، برای ورود به پیشخوان تلاش میکنند. پس باید آدرس صفحه ورود را تغییر دهید تا موجب افزایش امنیت سایت وردپرسی شما شود.
- محدودیت در تعداد تلاشهای ناموفق برای ورود به وردپرس
به صورت پیش فرض، کاربران میتوانند برای ورود به سایت، بینهایت بار تلاش کنند و نام کاربری و رمز را اشتباه وارد کنند. این موقعیت برای هکرها فرصتی فراهم میکند که با استفاده از ربات، حملات brute force را روی سایت اعمال کنند. در واقع آنقدر اطلاعات مختلف را امتحان میکنند تا در نهایت بتوانند وارد سایت شوند.
برای پیشگیری، باید تعداد دفعات تلاش ناموفق برای ورود را محدود کنید. مثلا تعیین کنید که بعد از 5 بار تلاش ناموفق، کاربر به مدت 10 ساعت نتواند برای ورود به سایت تلاش کند. با افزونههایی مثل Limit Login Attempts میتوان این محدودیت را اعمال کرد. همچنین اگر به فعالیت یک کاربر و تعداد تلاشهای ناموفق برای ورود به سایت مشکوک شدید، میتوانید IP آن کاربر را مسدود کنید.
- غیرفعال کردن امکان ورود به وردپرس با ایمیل
در حال حاضر، علاوه بر نام کاربری، با ایمیل هم میتوانید وارد پیشخوان وردپرس شوید. افراد زیادی آدرس ایمیل شما را میدانند و همین موضوع امنیت سایت را به خطر میاندازد. پس بهتر است برای افزایش امنیت سایت وردپرسی، امکان ورود با ایمیل را لغو کنیم.
انجام این کار با افزونه و بدون افزونه امکانپذیر است. در روش بدون افزونه، در هاست خود به مسیر /public_html/wp-content/themes/ رفته و پوشه مربوط به قالب را باز کنید. در فایل فانکشن (functions.php)، قطعه کد زیر را وارد کنید:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
برای استفاده از کدها، کافیست در مستطیل مشکی رنگ، ماوس را به سمت راست، بالا برده و بر روی علامت کپی کلیک کنید.
با انجام این کار، در ظاهر تغییری نمیبینید. ولی اگر کاربری بخواهد با ایمیل وارد شود، با خطا مواجه خواهد شد.
- استفاده از کپچا در صفحه ورود به وردپرس
تلاشهای زیاد برای ورود یا ارسال کامنت اسپم، منابع سرور شما را درگیر کرده و باعث میشود سایت از دسترس خارج شود. برای حل این مشکل از Captcha استفاده کنید. به جز صفحه ورود، در بخش نظرات و فرمهای مختلف هم میتوان از کپچا استفاده کرد. افزونههایی مثل reCaptcha by BestWebSoft و WordPress ReCaptcha Integration در انجام این کار به شما کمک میکنند.
- استفاده از ورود دو مرحله ای گوگل در وردپرس
احتمالا با نرم افزار Google Authenticator آشنا هستید. این نرم افزار روی موبایل نصب شده و کدهای رندم تولید میکند. شما میتوانید وردپرس را به این نرم افزار متصل کرده و در هنگام ورود، به جای اینکه کد تایید برایتان پیامک شود، از کدهای این اپلیکیشن استفاده کنید.
همچنین میتوانید از افزونه احراز هویت دو مرحلهای هم استفاده کنید. روش دیگر این است که در ورود دو مرحلهای، برای کاربر پیامک تایید ارسال شود. هریک از این روشها، موجب افزایش امنیت سایت وردپرسی شما میشود.
- استفاده از سوال امنیتی در صفحه ورود وردپرس
با نصب افزونه، میتوانید به صفحه ورود سوال امنیتی اضافه کنید. فقط کاربرانی میتوانند وارد سایت شوند که جواب صحیح را به صورت دقیق بدانند.
5. انتخاب رمز عبور پیچیده
اگر رمز ورود به وردپرس را راحت به ذهن میسپارید، قطعاً رمز سادهای است و پیدا کردن آن برای هکرها کار سختی نیست! اگر میخواهید از هک سایت وردپرسی در امان باشید، پسوردهای سخت شامل حروف بزرگ و کوچک، عدد و کاراکترهای مجاز انتخاب کنید.
حتماً رمز را در جایی مطمئن یادداشت کنید یا از نرمافزارهای ذخیره پسورد کمک بگیرید. انتخاب رمز عبور سخت نه تنها برای صفحه ورود، بلکه برای حسابهای FTP، پایگاه داده، ورود به هاست و … هم ضروری است. انتخاب یک رمز عبور سخت، جز اقدامات بدیهی برای افزایش امنیت سایت وردپرسی است.
6. استفاده از انواع سطح دسترسی برای کاربران
ممکن است یک تیم چند نفره شامل سئوکار، تولیدکننده محتوا، طراح سایت و … روی سایت کار کنند. در این حالت معمولاً به همه افراد دسترسی مدیریت میدهند. ولی این کار اشتباه است. چون اگر از سمت یک نفر، به هر طریقی پسورد محافظت نشود، کل مجموعه به خطر میافتد. پس بهتر است فقط طراح سایت نقش مدیر کل را داشته باشد و به سایر افراد نقشهای مرتبط نویسنده، ویرایشگر و … تعلق گیرد.
7. مخفی کردن ورژن وردپرس
پیدا کردن نسخه وردپرس سایت، کار بسیار سادهای است. متاسفانه دانستن نسخه وردپرس، به هکرها کمک میکند به سایت نفوذ پیدا کنند. در واقع باگهای آن نسخه را میدانند و از همان باگها برای نفوذ به سایت استفاده میکنند. پس در اولین فرصت مقاله “مخفی کردن ورژن وردپرس” را مطالعه کرده و نسخه وردپرس سایتتان را مخفی کنید. همین کار بسیار ساده، موجب افزایش امنیت سایت وردپرسی شما خواهد شد.
8. به روزرسانی
معمولاً در هر به روزرسانی وردپرس، تغییراتی برای بهبود امنیت وردپرس نیز اعمال میشود. در واقع اگر در نسخه قدیمی وردپرس حفره امنیتی برای ورود هکرها وجود داشته باشد، در آپدیتها برطرف میشود. پس حتما وردپرس، قالب و افزونههای سایت را به روز کنید. تیم وردپرس، دائماً در حال آپدیت وردپرس و رفع باگهای آن هستند و در هر آپدیت، به افزایش امنیت سایت وردپرسی میپردازند.
9. رمز گذاشتن روی پوشه wp-admin
پوشه wp-admin ، پوشه بسیار مهمی است که امکان مدیریت پیشخوان وردپرس را فراهم میکند. هکرها با دسترسی به این پوشه، کدهای مخرب به سایت اضافه میکنند و مشکلات امنیتی بوجود میآورند. پس باید از پوشه wp-admin محافظت کنیم. یکی از روشهای محافظت از آن، رمزگذاری روی پوشه wp-admin در هاست سی پنل است.
10. استفاده از افزونه امنیتی سایت وردپرس
افزونههای امنیتی وردپرس، به صورت شبانهروزی در حال رصد سایت شما هستند و حملات یا بد افزارها را شناسایی میکنند. برخی از معروفترین افزونههای امنیتی، افزونههای وردفنس، آیتمز سکیوریتی، All In One WP Security & Firewall نام دارند. استفاده از فزونههای امنیتی، جز روشهای افزایش امنیت وردپرس بدون نیاز به کدگذاری است.
11. عدم استفاده از قالبها و افزونههای نال
قالبها و افزونههای کرک شده، ممکن است حاوی کدهای مخرب باشند که امنیت سایت شما را به خطر میاندازند. پس استفاده از آنها را فراموش کنید! حتماً از سایتهای معتبر قالب و افزونه تهیه کنید. در غیراینصورت امکان نفوذ به سایت و هک سایت را بالا میبرید. پیشنهاد میکنم برای دریافت قالب و افزونه، به مخزن وردپرس، سایت ژاکت و سایت ابزار وردپرس مراجعه کنید.
12. بکاپگیری از سایت
بک آپ سایت، یک کپی کامل از اطلاعات سایت است. اگر برای سایت شما مشکل امنیتی پیش بیاید، به نسخه پشتیبان یا بکاپ احتیاج خواهید داشت تا بتوانید اطلاعات سایت را بازیابی کنید. پس حتما به صورت مستمر و در فواصل زمانی کوتاه، از اطلاعات سایت بکاپ بگیرید.
به هیچ عنوان به بکاپ شرکت هاستینگ اکتفا نکنید، چون ممکن است دقیقاً زمانیکه شما به بکاپ سایت احتیاج دارید، با مشکل مواجه شوند. روشهای مختلفی برای بکاپگیری از سایت وجود دارد. اگر از هاست سیپنل استفاده میکنید، مقاله « روشهای بکاپگیری از سایت وردپرسی از طریق سیپنل » را مطالعه کنید.
13. حذف قالب و افزونههای اضافی
اگر روی وردپرس قالب و افزونههایی دارید که از آنها استفاده نمیکنید، در اولین فرصت همه را حذف کنید. با این کار قدم دیگری در راستای افزایش امنیت سایت وردپرسی خود برداشتهاید!
14. محدودیت دسترسی به فایل wp-config.php
اطلاعات دیتابیس سایت از جمله یوزر و رمز ورود، در فایل wp-config.php قرار دارد. پس این فایل اهمیت بالایی دارد و باید از اطلاعات آن حفاظت شود. یکی از اقدامهای ضروری برای حفظ امنیت سایت وردپرسی این است که دسترسی به این فایل را محدود کنید.
روشهای مختلفی برای انجام این کار وجود دارد که باید توسط افراد مجرب انجام شود. حتما قبل از انجام آن از اطلاعات سایت بکاپ گرفته شود. در این روش، یک اشتباه کوچک میتواند سایت را از دسترس خارج کند. در ادامه دو روش پنهان کردن فایل wp-config.php را توضیح خواهیم داد:
روش اول: در پوشههای هاست، فایل wp-config.php را یک فولدر بالاتر از public_html قرار دهید. نگران نباشید مشکلی پیش نمیآید.
روش دوم: در فایل wp-config.php کد زیر را قرار دهید:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
15. بررسی فعالیت کاربران مهم در سایت
ممکن است در سایت شما علاوه بر مدیر، افراد دیگری هم به پیشخوان دسترسی داشته باشند یا نقشهای مختلفی مثل نویسنده داشته باشند. شما میتوانید برای بررسی امنیت سایت، رفتار این کاربران در سایت را با افزونههای مختلف تحت نظر بگیرید و اگر رفتار مشکوکی داشتند، اقدامات لازم برای افزایش امنیت سایت وردپرسی را انجام دهید.
16. غیرفعال کردن ویرایشگر قالب و افزونهها در پیشخوان
به صورت پیش فرض، در پیشخوان وردپرس ویرایشگر کد (Editor) وجود دارد که در دو قسمت نمایش و افزونهها قابل مشاهده است. با این ویرایشگر به تمامی کدهای قالب و افزونهها دسترسی دارید و میتوانید آنها را تغییر دهید. پس اگر هکر از هر طریقی وارد پیشخوان شود، میتواند کدهای مخرب به قالب و افزونهها اضافه کند.
برای جلوگیری از این اقدام، وارد هاست شوید. مسیر public-html را بیابید. فایل wp-config.php را پیدا کرده و به صفحه ویرایش فایل مراجعه کنید. کد زیر را در بخش define اضافه کرده و ذخیره کنید:
// Disallow file edit
define( ‘DISALLOW_FILE_EDIT’, true );
با قراردادن این کد، امکان ویرایش فایل از طریق پیشخوان وردپرس، غیرفعال شده و در نتیجه موجب افزایش امنیت سایت وردپرسی شما میشود.
17. غیرفعال کردن دسترسی به پوشهها در هاست
قابلیت directory browsing یا مرور دایرکتوری، به صورت پیش فرض در هاست فعال است. این فایل به هکرها میگوید چه قالبها و افزونههایی در سایت شما فعال است و اطلاعات سایت را لو میدهد. هکرها با بررسی پوشهها، راه نفوذ به سایت را پیدا میکنند.
برای تامین امنیت سایتهای وردپرس، نباید این پوشهها در دسترس باشند. جهت غیرفعال کردن مشاهده پوشههای هاست، مسیر public_html را در هاست پیدا کنید. وارد فایل htaccess. و در انتهای فایل، کد زیر را ذخیره کنید:
Options -Indexes
اگر از ووکامرس استفاده میکنید، به صورت خودکار دسترسی به پوشههای هاست غیر فعال میشود.
18. غیرفعال کردن پروتکل XML-RPC
فایل XML-RPC امکان دسترسی به وردپرس از راه دور و اعمال تغییرات بدون نیاز به ورود به وردپرس را فراهم می کند. با استفاده از فایل xmlrpc.php، میتوان ترکیبات مختلفی از نام کاربری و رمز عبور را به کار برده و وارد پیشخوان وردپرس شد. همچنین موجب حملات DDOS به سایت میشوند. . پس این پروتکل، فرصت خوبی برای هکرها است و باید غیرفعال شود.
برای غیرفعال کردن آن، در مسیر wp-content/themes هاست، کد زیر را به فایل functions.php قالب اضافه کنید:
add_filter('xmlrpc_enabled', '__return_false');
19. حذف پیغام خطا در صفحه ورود وردپرس
اگر در هنگام ورود به وردپرس، نام کاربری صحیح وارد شود ولی رمز اشتباه باشد، پیغام ” رمز وارد شده برای نام کاربری … اشتباه است ” نمایش داده میشود. این پیغام به هکرها اطمینان میدهد که نام کاربری را صحیح وارد کردهاند و فقط باید برای پیدا کردن پسورد تلاش کنند.
پس برای پیشگیری از هک شدن سایت وردپرسی، باید این پیغام را حذف کنیم. برای این کار، کافیست کد زیر را به فایل Functions.php قالب اضافه کنید:
// Remove error message on login screen
add_filter('login_errors',create_function('$a', "return null;"));
20. نصب فایروال
شما به عنوان مدیر سایت، هر روز از طریق کامپیوترتان وارد سایت میشوید. پس افزایش امنیت کامپیوتر و جلوگیری از نفوذ دیگران به آن هم ضروری است. بنابراین لازم است روی کامپیوترتان فایروال نصب کنید.
همچنین باید از طرف شرکت هاستینگ، روی هاست هم فایروال نصب شود. فایروال از وبسایت شما در برابر ویروسها، بدافزارها، حملات هکرها و … محافظت میکند. وقتی شما از افزونه های امنیت وردپرس استفاده میکنید، در واقع روی سایت فایروال نصب کردهاید.
بهترین پلاگینهای امنیتی در وردپرس که به این منظور میتوانید استفاده کنید، افزونههای Wordfence، NinjaFirewall و Sucuri و iThemes Security و … هستند.
21. تغییر نمایش عمومی نام
در نوشتههای وردپرس به صورت پیش فرض، نام کاربری مدیر سایت نمایش داده میشود. پس هکرها به راحتی به نام کاربری دسترسی دارند. یکی از نکات امنیت وردپرس، تغییر این نام است. برای حل این مشکل، کافیست به قسمت شناسنامه در وردپرس بروید و در قسمت نام نمایش عمومی، به جای نام کاربری، نام و نام خانوادگی خود یا هر متن دیگری را بنویسید. احتمالاً قبل از خواندن این مقاله، فکرش را هم نمیکردید، چند حرکت ساده موجب افزایش امنیت سایت وردپرسی شما شود!
22. حفاظت پیشخوان وردپرس با htaccess.
فایل htaccess. یکی از فایلهای مهم وردپرس است که با افزایش امنیت آن، امنیت فایلها و پوشههای وردپرس هم افزایش مییابد. برای بالا بردن امنیت آن، کد زیر را به htaccess. اضافه کنید:
<Files .htaccess>
order allow,deny
deny from all
</Files>
23. تغییر نام مدیر سایت وردپرسی
با نوشتن عبارت author=1?/ در انتهای آدرس سایت وردپرسی، نام کاربری مدیر سایت نمایش داده میشود. پس یکی از روشهای نفوذ به وردپرس به شمار میرود.
برای مخفی کردن نام مدیر سایت و ارتقای امنیت وردپرس، میتوانید از افزونه sx user name security استفاده کنید. همچنین با استفاده از افزونه sf author url control میتوانید از دسترسی به حسابهای کاربری جلوگیری کنید.
با استفاده از چک لیست امنیت سایت وردپرس که در این مقاله ارائه شد، میتوانید از هک کردن وبسایت های وردپرسی جلوگیری کنید. اگر سوالی در خصوص افزایش امنیت سایت وردپرس دارید، در قسمت دیدگاهها مطرح کنید.