وردپرس محبوبترین سیستم مدیریت محتوا (Content Management System) است که 43.2 درصد از کل وب سایتها با استفاده از این نرم افزار اجرا میشوند. متأسفانه، محبوبیت این سیستم مدیریت محتوا باعث میشود که تعداد زیادی از مجرمان سایبری که از آسیب پذیریهای امنیتی این پلتفرم آگاه هستند، از آن سو استفاده کنند. این بدان معنا است که به صورت پیش فرض امنیت وردپرس توان مقابله در مقابل هکرها را ندارد. این مشکلات امنیتی ممکن است به دلیل عدم آگاهی کاربران از روشهای بهبود امنیت وردپرس رخ دهد. بنابراین، بهتر است قبل از اینکه وب سایت شما به هدف هکرها تبدیل شود، اقدامات امنیتی مورد نظر را اعمال کنید.
در این مقاله قصد داریم در مورد روشهای بهبود امنیت سایت وردپرس و محافظت از وب سایت شما در برابر حملات سایبری مختلف صحبت کنیم. بعضی از روشهایی که در این مقاله برای شما ارائه دادهایم از یک یا چند افزونه وردپرس استفاده میکنند و بعضی دیگر ارتباطی با افزونههای این پلتفرم ندارند. برخی از این روشها برای پلتفرمهای غیر از وردپرس نیز قابل اجرا هستند.
چرا باید امنیت وردپرس خود را افزایش دهید؟
دلایل اهمیت امنیت وردپرس چیست؟ اگر وب سایت شما که با استفاده از وردپرس ساخته شده است هک شود، خطر از دست دادن دادهها، داراییها و سایر اطلاعات مهم شما را تهدید میکند. علاوه بر این، مسائل امنیتی میتواند دادههای شخصی و اطلاعات مربوط به صورتحساب مشتریان شما را نیز به خطر بیندازد.
هزینهای که جرایم سایبری روی دست دارندگان وبسایتها میگذارند تا سال 2025 به 10.5 تریلیون دلار در سال خواهد رسید. مطمئناً شما نمیخواهید هدف یک هکر قرار بگیرید و در این خسارت 10.5 تریلیون دلاری سهیم باشید.
بر اساس پایگاه دادهی WPScan، موارد ذکر شده در پایین برخی از رایجترین انواع آسیبپذیریهای امنیتی وردپرس هستند:
- آسیب پذیری درخواست بین سایتی (CSRF): CSRF کاربر را مجبور میکند تا اقدامات ناخواستهای را در یک برنامه قابل اعتماد تحت وب انجام دهد.
- حمله انکار سرویس توزیع شده (DDoS): DDoS خدمات آنلاینی را با پر کردن اتصالات ناخواسته از کار میاندازد و در نتیجه یک سایت را از دسترس خارج میکند.
- دور زدن احراز هویت: این مورد به هکرها امکان دسترسی به منابع وب سایت شما را بدون احراز هویت آنها میدهد.
- تزریق SQL (SQLi): SQLi سیستم را مجبور میکند تا کوئریهای SQL مخرب را اجرا کرده و دادهها را در پایگاه داده (یا دیتابیس Database) دستکاری کند.
- حمله برنامه نویسی متقابل سایت (XSS) : ایکس اس اس کد مخربی را اجرا میکند که سایت را به یک انتقال دهنده بدافزار تبدیل میکند.
- گنجاندن فایل محلی (LFI): این مورد، وبسایت را مجبور به پردازش فایلهای مخربی میکند که در وب سرور قرار داده شده است.
بهترین روشهای عمومی برای بهبود امنیت وب سایت
در این بخش، ما به شش نکته امنیتی مربوط به وردپرس میپردازیم که به دانش فنی پیشرفته و سرمایه گذاریهای پرخطر نیازی ندارند. حتی یک مبتدی نیز میتواند این کارهای ساده مانند بهروزرسانی نرمافزار وردپرس و حذف تمهای بلااستفاده را انجام دهد.
1. نسخه وردپرس را به طور منظم به روز کنید
وردپرس بهروزرسانیهای نرمافزاری منظمی را برای بهبود عملکرد و امنیت خود منتشر میکند. این بهروزرسانیها همچنین از سایت شما در برابر خطرات سایبری محافظت میکنند.
بهروزرسانی نسخه وردپرس یکی از سادهترین راهها برای بهبود امنیت وردپرس است. با این حال، نزدیک به 50٪ از سایتهای وردپرس بر روی نسخههای قدیمیِ وردپرس اجرا میشوند. همین مسئله باعث میشود که آنها آسیب پذیرتر شوند.
برای اینکه مطمئن شوید آیا آخرین نسخه وردپرس را دارید یا نه، به قسمت مدیریت وردپرس خود بروید. بعد از آن از قسمت داشبورد (Dashboard) به قسمت بهروزرسانی (Updates) بروید. اگر دیدید که نسخهی وردپرس شما به روز نیست، توصیه میکنیم حتما در اسرع وقت آن را به روز کنید.
به تاریخهای انتشار بهروزرسانی آینده توجه داشته باشید تا مطمئن شوید که سایت شما در حال اجرای نسخه قدیمی وردپرس نیست.
همچنین توصیه میکنیم تمها و افزونههای نصب شده در سایت وردپرس خود را به روز کنید. تمها و افزونههای قدیمی ممکن است با نسخه به روز شده وردپرس هماهنگ نباشد و باعث ایجاد خطا شود. همچنین این مسئله باعث میشود خطر تهدیدات امنیتی به صورت بالقوه به وجود بیاید.
برای خلاص شدن از شر تمها و افزونههای قدیمی این مراحل را دنبال کنید:
- به پنل مدیریت وردپرس خود بروید و از قسمت Dashboard به Updates بروید.
- به قسمت افزونهها و تمها (Plugins and Themes) بروید و لیست تمها و افزونههای آماده برای بهروزرسانی را بررسی کنید. توجه داشته باشید که میتوان آنها را هم به صورت یکباره و هم به صورت جداگانه بهروزرسانی کرد.
- روی Update Plugins کلیک کنید.
فعال کردن بهروزرسانیهای خودکار حجم کاری که شما باید انجام دهید را کاهش میدهد. اما میتواند وبسایت شما را به دلیل ناسازگاری با افزونهها یا تمهای قدیمیتر خراب کند. اگر این گزینه را فعال کردید، مطمئن شوید که از وب سایت شما به طور منظم نسخه پشتیبان (بکآپ) تهیه شده است تا در صورت بروز خطا بتوانید به نسخه قبلی برگردید.
2. از اعتبارنامه WP-Admin استفاده کنید
یکی از رایجترین اشتباهاتی که کاربران مرتکب میشوند استفاده از نامهای کاربری ساده و قابل حدس زدن مانند «admin»، «administrator» یا «test» است. این سایت شما را در معرض خطر حملات brute force قرار میدهد. علاوه بر این، مهاجمان نیز از این نوع حمله برای هدف قرار دادن سایتهای وردپرسی که پسورد قوی ندارند، استفاده میکنند.
بنابراین، توصیه میکنیم نام کاربری و رمز عبور خود را منحصر به فرد و پیچیدهتر انتخاب کنید. برای ایجاد یک حساب کاربری جدید ادمین وردپرس با نام کاربری امنتر، این مراحل را دنبال کنید:
- از داشبورد وردپرس خود به Users و سپس به Add New بروید.
- یک کاربر جدید ایجاد کنید و نقش Administrator را به آن اختصاص دهید. یک رمز عبور اضافه کنید و پس از اتمام کار، دکمه افزودن کاربر جدید (Add New User) را فشار دهید.
- اعداد، نمادها و حروف بزرگ و کوچک را در رمز عبور خود بگنجانید. همچنین توصیه میکنیم از بیش از 12 کاراکتر استفاده کنید زیرا کشف رمزهای عبور طولانیتر بسیار سخت است.
اگر برای ایجاد رمز عبور قوی به کمک نیاز دارید، از ابزارهای آنلاین مانند LastPass و Password1 استفاده کنید. میتوانید از خدمات مدیریت رمز عبور آنها برای ذخیره مطمئن رمزهای عبور قوی استفاده کنید. به این ترتیب، شما مجبور نیستید آنها را حفظ کنید.
پس از ایجاد نام کاربری جدید برای ادمین وردپرس، باید نام کاربری قدیمی ادمین را حذف کنید. مراحل انجام این کار برای شما در این قسمت آورده شده است:
- با اطلاعات کاربری جدید خود به حسابتان در وردپرس وارد شوید.
- به Users و سپس All Users بروید.
- اکانت ادمین قدیمی خود که میخواهید حذف کنید را انتخاب کنید. از منوی کشویی Bulk Actions، گزینه Delete را انتخاب کرده و روی Apply کلیک کنید.
برای ایمن نگه داشتن سایت خود، مهم است که قبل از ورود به سیستم، شبکهای که به آن متصل هستید را بررسی کنید. اگر به طور ناآگاهانه به Hotspot Honeypot متصل باشید که شبکهای است که توسط هکرها اداره میشود، اطلاعات شما در معرض خطر لو رفتن قرار میگیرد.
حتی شبکههای عمومی مانند وایفای کتابخانههای دانشگاه ممکن است آنقدر که به نظر میرسد امن نباشند. هکرها میتوانند اتصال شما را رهگیری کرده و دادههای رمزگذاری نشده، از جمله اطلاعات مربوط به ورود به سیستم را به سرقت ببرند.
به همین دلیل، توصیه میکنیم هنگام اتصال به یک شبکه عمومی از VPN استفاده کنید. در این صورت یک لایه رمزگذاری برای اتصال فراهم میشود و رهگیری دادهها را سختتر میکند و از فعالیتهای آنلاین شما محافظت میکند.
3.Safelist و Blocklist را برای صفحه مدیریت تنظیم کنید
فعال کردن قفل URL از صفحه ورود شما در برابر آدرسهای IP غیرمجاز و حملات بروت فورس (brute force) محافظت میکند. برای انجام این کار، به یک سرویس فایروال برنامه وب (WAF) مانند کلودفایر (Cloudflare) یا سوکیوری (Sucuri) نیاز دارید.
با استفاده از کلودفایر، میتوان یک قانون قفل منطقهای را ایجاد کرد. URL هایی را که میخواهید قفل کنید و محدوده IP مجاز برای دسترسی به این URL ها را مشخص کنید. هر کسی که خارج از محدوده IP مشخص شده باشد، اجازه ندارد که به این URL دسترسی داشته باشد.
Sucuri دارای ویژگی مشابهی به نام بلاک لیست (blocklist) مسیر URL است. ابتدا آدرس صفحه ورود به سیستم را به بلاک لیست اضافه کنید تا کسی نتواند به آن دسترسی داشته باشد. سپس، آدرسهای IP مجاز را برای دسترسی امن به صفحه ورود به سیستم وارد کنید.
از طرف دیگر، با پیکربندی فایل htaccess. سایت خود، دسترسی به صفحه ورود خود را محدود کنید. برای دسترسی به این فایل باید به دایرکتوری روت خود بروید.
نکته: قبل از ایجاد هر گونه تغییری، به شما توصیه میکنیم از فایل htaccess. نسخه بکآپ تهیه کنید. اگر مشکلی پیش بیاید، میتوانید سایت خود را به راحتی بازیابی کنید.
افزودن این ویژگی به .htaccess دسترسی شما را به wp-login.php تنها به یک IP محدود میکند. بنابراین، مهاجمان نمیتوانند از مکانهای دیگر وارد صفحه ورود به سیستم شما شوند.
# Block IPs for login Apache 2.2 <files /wp-login.php> order deny,allow allow from MYIP allow from MYIP2 deny from all </files> # Block IPS for login Apache 2.4 <Files "wp-login.php"> Require all denied </Files>
این دستور باید بین دستورات # BEGIN WordPress و # END WordPress قرار گیرد.
این قانون حتی اگر IP ثابت نداشته باشید اعمال میشود. زیرا میتوانید ورود به سیستم را به محدوده مشترک ISP خود محدود کنید.
همچنین میتوانید از این قانون برای محدود کردن سایر URL های احراز هویت شده مانند /wp-admin استفاده کنید.
4. از تمهای مورد اعتماد وردپرس استفاده کنید
تمهای نال شده (nulled) وردپرس نسخههای غیرمجاز تمهای اصلی هستند. در بیشتر موارد، این تمها برای جذب کاربران، با قیمت کمتری فروخته میشوند. این تمها معمولا مشکلات امنیتی زیادی دارند.
اغلب، ارائه دهندگان تمهای نال شده هکرهایی هستند که تم اصلی را هک کرده و کدهای مخرب، از جمله بدافزار و لینکهای اسپم را در آن درج کردهاند. علاوه بر این، این تمها میتوانند راههای دیگری را برای مجرمان سایبری فراهم کنند که از وب سایت وردپرس شما سو استفاده کنند.
از آنجایی که تمهای نال شده به صورت غیرقانونی ارائه میشوند، کاربران آنها هیچ گونه پشتیبانیای از سوی توسعه دهندگان دریافت نمیکنند. این بدان معنی است که اگر سایت شما هر گونه مشکلی پیدا کند، باید خودتان ایراد آن را رفع کنید و امنیت سایت وردپرس شما بر عهده خودتان است.
برای جلوگیری از اینکه تبدیل به یک هدف هکر شوید، توصیه میکنیم تم وردپرس را از وب سایت رسمی یا توسعه دهندگان مورد اعتماد دریافت کنید. از طرف دیگر، تمهای شخص ثالث را در فروشگاههای رسمی تم مانند ThemeForest، که در آن هزاران تم با کیفیت در دسترس هستند، دریافت کنید.
5. گواهی SSL را نصب کنید
لایه سوکتهای امن (SSL) یک پروتکل انتقال داده است که دادههای مبادله شده بین وب سایت و بازدیدکنندگان آن را رمزگذاری میکند و سرقت اطلاعات مهم را برای مهاجمان دشوارتر میکند.
علاوه بر این، گواهیهای SSL بهینهسازی سایت وردپرس را برای موتورهای جستجو (SEO) تقویت میکند و به این وبسایتها کمک میکند بازدیدکنندگان بیشتری جذب کند.
وبسایتهایی با گواهی SSL نصب شده به جای HTTP از HTTPS استفاده میکنند. بنابراین شناسایی آنها آسان است.
پس از نصب گواهی SSL در حسابِ هاست وردپرس خود، میتوانید آن را در وب سایت خود فعال کنید.
افزونههایی مانند Really Simple SSL یا SSL Insecure Content Fixer میتوانند جنبههای فنی و فعال سازی SSL را با چند کلیک برای شما ارائه کنند. نسخه پریمیوم Really Simple SSL میتواند هدرهای HTTP Strict Transport Security را فعال کند که استفاده از HTTPS را هنگام دسترسی به سایت اعمال میکند.
پس از اتمام این فرایند، URL سایت خود را از HTTP به HTTPS تغییر دهید. برای انجام این کار، به قسمت Settings و سپس به General بروید و قسمت Site Address (URL) را پیدا کرده و URL آن را تغییر دهید.
6. افزونهها و تمهای بلااستفاده خود را حذف کنید
نگه داشتن افزونهها و تمهای بلااستفاده در سایت تواند مضر باشد؛ به خصوص اگر بهروز نشده باشند. افزونهها و تمهای قدیمی خطر حملات سایبری را افزایش میدهند. زیرا هکرها میتوانند از آنها برای دسترسی به سایت شما استفاده کنند.
برای حذف یک افزونه وردپرس بلااستفاده مراحل زیر را دنبال کنید:
- به قسمت Plugins و سپس به Installed Plugins بروید.
- لیست تمام افزونههای نصب شده را مشاهده خواهید کرد. هرکدام از افزونهها را که خواستید پاک کنید، روی گزینه Delete زیر نام افزونه کلیک کنید.
توجه داشته باشید که گزینه حذف تنها پس از غیرفعال کردن افزونه در دسترس خواهد بود.
در ادامه مراحل حذف یک تم بلااستفاده برای شما ارائه شده است:
- از داشبورد مدیریت وردپرس خود، به قسمت Appearance و سپس به Themes بروید.
- روی تمی که میخواهید حذف کنید کلیک کنید.
- یک پنجره پاپ آپ ظاهر میشود که جزئیات تم را نشان میدهد. روی گزینه Delete در گوشه سمت راست پایین کلیک کنید.
نحوه استفاده از افزونههای امنیتی وردپرس
روش بعدی برای بهبود امنیت وردپرس با استفاده از افزونه امنیت وردپرس ارائه شده است.
این یک راه ساده برای محافظت از وبسایت شما است. اما به یاد داشته باشید که همه این افزونهها را به طور همزمان نصب نکنید زیرا تعداد زیاد افزونهها میتواند سرعت سایت شما را به شدت کاهش دهند.
ابتدا نیازهای خود را برای انتخاب موثرترین افزونهها برای وب سایت خود شناسایی کنید.
احراز هویت دو مرحله ای را برای WP-Admin فعال کنید
احراز هویت دو مرحلهای (FA2) را فعال کنید تا روند ورود به سایت وردپرس خود را بهبود ببخشید. این روش احراز هویت یک لایه دوم از امنیت وردپرس را به صفحهی ورود اضافه میکند. زیرا کاربر برای تکمیل فرآیند ورود باید یک کد منحصر به فرد را وارد کند. این کد فقط از طریق یک پیام متنی یا یک برنامه احراز هویت در دسترس شما است.
برای اعمال FA2 در سایت وردپرس خود، یک افزونه امنیتی ورود مانند Wordfence Login Security را نصب کنید. علاوه بر این، باید یک برنامه احراز مانند Google Authenticator را نیز روی تلفن همراه خود نصب کنید.
پس از نصب افزونه و برنامه احراز هویت، مراحل زیر را برای فعال کردن احراز هویت دو مرحله ای دنبال کنید:
- به صفحه افزونهها در قسمت ادمین وردپرس خود بروید. اگر از Wordfence Login Security استفاده میکنید، به منوی Login Security در پنل منوی سمت چپ بروید.
- تب احراز هویت دو مرحلهای (Two-Factor Authentication) را باز کنید.
- از برنامه تلفن همراه خود برای اسکن کد QR یا وارد کردن کلید فعال سازی استفاده کنید.
- کد ایجاد شده در برنامه تلفن همراه خود را در قسمت موجود در قسمت کدهای بازیابی وارد کنید.
- برای تکمیل تنظیمات روی دکمه ACTIVE کلیک کنید.
همچنین، در صورت از دست دادن دسترسی به دستگاه دارای برنامه احراز هویت، کدهای بازیابی ارائه شده را دانلود کنید.
به طور منظم از وردپرس نسخه پشتیبان تهیه کنید
ایجاد منظم نسخه بکآپ از سایت وردپرس یک مسئله مهم است. زیرا به شما کمک میکند تا سایت خود را پس از وقوع حوادثی مانند حملات سایبری یا آسیب فیزیکی به دیتابیس بازیابی کنید. فایل بکآپ باید شامل کل فایلهای نصب وردپرس شما مانند دیتابیس و فایلهای اصلی وردپرس باشد.
برای گرفتن بکآپ از یک سایت وردپرس میتوان با استفاده از افزونههایی مانند All-in-One WP Migration استفاده کرد. برای ایجاد یک فایل بکآپ با این افزونه مراحل زیر را دنبال کنید:
- افزونه را نصب و فعال کنید.
- به منوی All-in-One WP Migration در پنل منوی سمت چپ بروید.
- Backups را انتخاب کنید.
- روی Create Backup کلیک کنید.
- پس از ایجاد نسخه بکآپ، این نسخه در لیستی در صفحه بکآپ شما ظاهر میشود.
- نسخه بکآپ را دانلود و در حافظه ذخیره کنید. برای انجام این کار، به All-in- One WP Migration و سپس Export بروید.
- روی منوی کشویی EXPORT TO کلیک کنید، File را انتخاب کنید. در این صورت میتوانید یک نسخه بکآپ برای سایت خود ایجاد کنید.
- پس از تکمیل این فرآیند، روی لینک دانلود کلیک کرده و نسخه از سایت خود را در فضای ذخیره سازی ایمن تعیین شده ذخیره کنید. ترجیحاً این فضای ذخیره سازی مکانی در همان سرور وب سایت شما نباشد. دلیل این نکته این است که نسخههای بکآپ ذخیره شده در سرور شما در دسترس عموم است و کل وبسایت را در برابر حملات سایبری آسیب پذیر میکند.
در صورت بروز حادثه، میتوانید سایت وردپرس خود را با استفاده از ابزار Import از افزونه All-in-One WP Migration بازیابی کنید.
محدود کردن تعداد دفعات تلاش برای ورود
وردپرس به کاربران خود اجازه میدهد تعداد نامحدودی تلاش برای ورود به سایت انجام دهند. متأسفانه، هکرها میتوانند با استفاده از ترکیبهای مختلف رمز عبور تا زمانی که رمز عبور مناسب را بیابند، به زور به بخش مدیریت وردپرس شما راه پیدا کنند.
بنابراین، شما باید تعداد دفعات تلاش برای ورود به سیستم را برای جلوگیری از چنین حملاتی محدود کنید. محدود کردن تلاشهای ناموفق همچنین به نظارت بر فعالیتهای مشکوک در سایت شما کمک خواهد کرد.
اکثر کاربران فقط به چند مرتبه تلاش برای ورود نیاز دارند. بنابراین باید به آدرسهای IP مشکوک که دفعات تلاششان برای ورود به حداکثر تلاش رسیده است مشکوک باشید.
یکی از راههای محدود کردن تعداد دفعات تلاش برای ورود به سیستم، استفاده از یک افزونه است. گزینههای بسیار خوبی برای این کار وجود دارد، مانند:
- محدود کردن تعداد دفعات تلاش برای ورود به سیستم: این کار تعداد تلاشهای ناموفق را برای آدرسهای IP خاص پیکربندی میکند، کاربران را به لیست امن (سِیف لیست) اضافه میکند یا آنها را به طور کامل مسدود میکند. همچنین به کاربران وبسایت در مورد تعداد دفعات باقیمانده اطلاع رسانی میکند.
- استفاده از افزونه Loginizer: این افزونه ویژگیهای امنیتی مانند FA2، reCAPTCHA و سوالات چالش ورود را ارائه میدهد.
- استفاده از Limit Attempts: این افزونه به طور خودکار آدرسهای IP را که به محدودیت تلاش برای ورود میرسند مسدود میکند و آنها را به لیست مخصوصی اضافه میکند.
یکی از خطرات اجرای این اقدام امنیتی وردپرس، قفل شدن یک کاربر از مدیریت وردپرس است. با این حال، نباید نگران این موضوع باشید. چراکه راههای زیادی برای بازیابی حسابهای قفل شده وردپرس وجود دارد.
URL صفحه ورود به وردپرس را تغییر دهید
برای اضافه کردن یک لایه امنیتی بیشتر برای محافظت از وب سایت خود در برابر حملات brute force، URL صفحه ورود را تغییر دهید. این مسئله به خوبی باعث افزایش امنیت وردپرس میشود.
همه وبسایتهای وردپرس دارای یک URL برای ورود به سیستم هستند که به صورت yourdomain.com/wp-admin است. استفاده از URL پیش فرض برای ورود به سیستم، حملهی هکرها به وب سایتتان را آسانتر میکند.
افزونههایی مانند WPS Hide Login و Change wp-admin Login تنظیمات URL سفارشی ورود به سیستم را فعال میکنند.
اگر از افزونه WPS Hide Login استفاده میکنید، در این قسمت مراحل تغییر URL صفحه ورود به وردپرس آورده شده است:
- در داشبورد خود، به Settings و سپس به WPS Hide Login بروید.
- فیلد Login URL را با URL ورود سفارشی خود پر کنید.
- روی گزینه Save Changes کلیک کنید تا این فرآیند به پایان برسد.
خروج خودکار کاربران غیرفعال
بسیاری از کاربران فراموش میکنند که از وب سایت خارج شوند و صفحه خود را در حال اجرا رها میکنند. از این رو، این مسئله به شخص دیگری که از همان دستگاه استفاده میکند اجازه میدهد به حسابهای کاربری دیگری دسترسی داشته باشد و به طور بالقوه از دادههای محرمانهی او سوء استفاده کند. این مسئله به ویژه برای کاربرانی که از رایانههای عمومی در کافی نتها یا کتابخانهها استفاده میکنند صدق میکند.
بنابراین، بسیار مهم است که وب سایت وردپرس خود را طوری پیکربندی کنید که کاربران غیرفعال را به طور خودکار از سیستم خارج کنید. اکثر سایتهای بانکی از این تکنیک برای جلوگیری از دسترسی بازدیدکنندگان غیرمجاز به سایتهایشان استفاده میکنند و اطمینان حاصل میکنند که دادههای مشتریانشان امن است.
استفاده از افزونههای امنیتی وردپرس مانند Inactive Logout یکی از سادهترین راهها برای خروج خودکار از حسابهای کاربری غیرفعال است. این افزونه همچنین میتواند یک پیام سفارشی ارسال کند تا به کاربران غیرفعال هشدار دهد که دستگاهشان به زودی از حساب کاربری آنها در وب سایت شما خارج میشود.
نظارت بر فعالیت کاربر
با ردیابی فعالیتها در قسمت مدیریت، میتوانید هرگونه اقدام ناخواسته یا مخربی را که وب سایت شما را در معرض خطر قرار میدهد، شناسایی کنید.
ما این روش را برای افرادی توصیه میکنیم که چندین کاربر یا ادمین دارند که به وب سایت وردپرس دسترسی دارند. کاربران ممکن است تنظیماتی مانند تمها یا پیکربندی افزونهها که باید دست نخورده باقی بماند را تغییر دهند.
با نظارت بر فعالیتهای آنها، متوجه خواهید شد که چه کسی مسئول آن تغییرات ناخواسته است. همچنین اگر شخص غیرمجازی به وب سایت وردپرس شما نفوذ کرده باشد، میتوانید او را شناسایی کنید.
ساده ترین راه برای پیگیری فعالیت کاربر استفاده از افزونههای وردپرس است، مانند
- WP Activity Log: این افزونه امنیت وردپرس بر تغییرات در قسمتهای مختلف وب سایت، از جمله پستها، صفحات، تمها و افزونهها نظارت میکند. همچنین فایلهای تازه اضافه شده، فایلهای حذف شده و تغییرات را در هر فایلی ثبت میکند.
- Activity Log: این افزونه بر فعالیتهای مختلف در پنل مدیریت وردپرس نظارت میکند و به شما امکان دهد قوانینی را برای اعلانهای ایمیل تنظیم کنید.
- Simple History: افزونهی Simple History علاوه بر ثبت گزارش فعالیتها در قسمت مدیریت وردپرس، از چندین افزونه دیگر مانند Jetpack، WP Crontrol و Beaver Builder پشتیبانی میکند و تمام فعالیتهای مربوط به
آنها را ذخیره میکند.
بدافزارها را بررسی کنید
موسسه AV-TEST هر روز بیش از 450 هزار بدافزار جدید و برنامههای کاربردی ناخواسته (PUA) را ثبت میکند. برخی از این بدافزارها حتی ماهیت چند شکلی دارند. به این معنی که میتوانند خود را تغییر دهند تا از شناسایی آنها جلوگیری شود.
بنابراین، اسکن منظم سایت وردپرس خود برای یافتن بدافزارها بسیار مهم است. زیرا هکرها همیشه انواع جدیدی از تهدیدات سایبری را ایجاد میکنند.
خوشبختانه، بسیاری از افزونههای اسکنر هک وردپرس میتوانند بدافزارها را اسکن کرده و امنیت وردپرس را بهبود بخشند.
کارشناسان ما این افزونههای افزایش امنیت وردپرس را برای نصب در سایت خود به شما توصیه می کنند:
- Wordfence: یک افزونه محبوب برای افزایش امنیت وردپرس است که با بهروزرسانیهای مربوط به بدافزار و اعلانهای هشدار، به شما اطلاع میدهد که آیا سایت دیگری سایت شما را برای فعالیت مشکوک در لیست خود مسدود کرده است یا خیر.
- BulletProof Security: این افزونه با داشتن ویژگی خروج از حسابهای کاربری غیرفعال و ردیابی پوشههای افزونه پنهان که در بخش افزونههای وردپرس قابل مشاهده نیستند و ابزارهای بکآپ گیری و بازیابی دیتابیس، به ایمن کردن وبسایت وردپرس شما کمک میکند.
- Sucuri Security: این افزونه یکی از بهترین افزونههای امنیتی در بازار است که گواهینامههای مختلف SSL، اسکن بدافزار از راه دور و ویژگیهای مربوط به اقدامات امنیتی پس از هک را ارائه میدهد.
– مطمئن شوید که همیشه قسمت wp-admin خود را در دسترس داشته باشید. وبسایت خود را اسکن کنید و از شر بدافزار خلاص شوید.
– مطمئن شوید که افزونهها، تمها و نرم افزار اصلی وردپرس شما به روز هستند.
– آسیبپذیریهای پایگاه داده خود را بررسی کنید تا ببینید آیا افزونهها یا تمهای شما به عنوان خطر فهرست شدهاند یا خیر.
چگونه امنیت وردپرس را بدون استفاده از افزونه بهبود ببخشیم؟
افزایش امنیت وب سایت خود بدون استفاده از افزونهها نیز امکان پذیر است. بیشتر این کارها شامل بهینه سازی کد سایت شما است. اما نیازی به نگرانی نیست. ما به شما نشان خواهیم داد که چگونه این کار را مرحله به مرحله انجام دهید.
PHP Error Reporting را غیرفعال کنید
گزارش خطای PHP اطلاعات کاملی را در مورد مسیرها و ساختار فایلهای وب سایت شما نمایش میدهد و آن را به یک ویژگی عالی برای نظارت بر اسکریپتهای PHP سایت شما تبدیل میکند.
با این حال، نشان دادن آسیب پذیریهای وب سایت شما در باطن یک نقص جدی امنیت وردپرس است.
به عنوان مثال، اگر افزونه خاصی را نمایش دهد که پیام خطا در آن ظاهر شده است، مجرمان سایبری میتوانند از آسیب پذیریهای آن افزونه استفاده کنند.
اصلاح فایل PHP
برای تغییر فایل PHP مراحل زیر را دنبال کنید:
- فایل wp-config.php سایت خود را با استفاده از یک سرویس گیرنده FTP مانند FileZilla یا بخش مدیریت فایل ارائه دهندهی هاست خود باز کنید.
- قطعه کد زیر را به فایل اضافه کنید. مطمئن شوید که آن را قبل از هر دستور PHP دیگری اضافه کنید.
error_reporting(0); @ini_set(‘display_errors’, 0);
- برای اعمال تغییر روی ذخیره (Save) کلیک کنید.
از یک هاست امنتر استفاده کنید
پس از اینکه خرید هاست خود را انجام دادید، اگر هاست شما مستعد حملات سایبری باشد، اقدامات چندگانه برای رسیدن به امنیت وردپرس اهمیت چندانی نخواهد داشت. ارائه دهنده هاست شما باید فضای امنی را برای تمام دادهها و فایلهای وب سایت شما بر روی سرور خود ارائه دهد. بنابراین بسیار مهم است که فضایی را برای میزبانی انتخاب کنید که دارای سطح امنیتی بالایی باشد.
گزینه ویرایش فایل را غیرفعال کنید
وردپرس دارای یک ویرایشگر فایل داخلی است که ویرایش فایلهای PHP وردپرس را آسان میکند. با این حال، اگر هکرها به این فایل دسترسی پیدا کنند، این ویژگی میتواند برای شما مشکل ساز شود.
به همین دلیل برخی از کاربران وردپرس ترجیح میدهند این قابلیت را غیرفعال کنند. برای غیرفعال کردن ویرایش فایل، خط کد زیر را به فایل wp-config.php اضافه کنید:
define( 'DISALLOW_FILE_EDIT', true );
اگر میخواهید دوباره این ویژگی را در سایت وردپرس خود فعال کنید، به سادگی کد قبلی را از فایل wp-config.php با استفاده از یک سرویس گیرنده FTP یا سرویس مدیریت فایل که توسط ارائه دهنده هاست در اختیار شما قرار گرفته است، حذف کنید.
محدود کردن دسترسی با استفاده از فایل htaccess
فایل htaccess تضمین میکند که لینکهای وردپرس به درستی کار میکنند. اگر این فایل به درستی کار نکند، خطاهای 404 Not Found زیادی را در سایت خود دریافت خواهید کرد.
علاوه بر این، htaccess میتواند دسترسی از IP های خاص را مسدود و آن را به تنها یک IP محدود کند. همچنین میتواند اجرای PHP را در پوشههای خاص غیرفعال کند. در ادامه به شما نشان خواهیم داد که چگونه از .htaccess برای تقویت امنیت وردپرس خود استفاده کنید.
غیرفعال کردن اجرای PHP در پوشههای خاص
هکرها اغلب اسکریپتهای اختصاصی خود را در پوشه Uploads آپلود میکنند. به طور پیش فرض، این پوشه فقط فایلهای رسانهای آپلود شده را میزبانی میکند. بنابراین نباید حاوی هیچ فایل PHP باشد.
برای افزایش امنیت وردپرس خود، اجرای PHP را با ایجاد یک فایل htaccess جدید در مسیر /wp-content/uploads/ به صورت توضیح داده شده غیرفعال کنید:
<Files *.php> deny from all </Files>
محافظت از فایل wp-config.php
فایل wp-config.php در فهرست اصلی شامل تنظیمات هستهی وردپرس و جزئیات پایگاه داده MySQL است(عبارت پایگاه داده بیشتر با عنوان دیتابیس شناخته میشود). بنابراین، این فایل معمولاً هدف اصلی یک هکر است.
با اجرای این قوانین که مربوط به htaccess است، از این فایل محافظت کنید و وب سایت وردپرس خود را ایمن نگه دارید:
<files wp-config.php> order allow,deny deny from all </files>
پیشوند پیش فرض دیتابیس وردپرس خود را تغییر دهید
دیتابیس وردپرس تمام اطلاعات حیاتی مورد نیاز برای عملکرد وبسایت شما را نگهداری و ذخیره سازی میکند. بنابراین، هکرها اغلب دیتابیس را با حملات تزریق SQL (SQL injection) هدف قرار می دهند. این تکنیک کدهای مضر را به پایگاه داده وارد (تزریق) میکند و میتواند اقدامات مربوط به امنیت وردپرس را دور زده و محتوای دیتابیس را بازیابی کند.
بیش از 50 درصد حملات سایبری به صورت تزریق SQL است که آن را به یکی از بزرگترین تهدیدها برای مالکان وبسایتها تبدیل میکند. هکرها طرفدار پر و پا قرص این حمله هستند. چرا که بسیاری از کاربران فراموش میکنند پیشوند پایگاه داده پیش فرض wp_ را تغییر دهند.
بیایید نگاهی به دو روشی بیندازیم که میتوانید برای محافظت از دیتابیس وردپرس خود در برابر حملات تزریق SQL پیاده سازی کنید.
تغییر پیشوند جدول
- از داشبورد کنترل پنل خود، به File Manager رفته و فایل wp-config.php را باز کنید. همچنین میتوانید از یک کلاینت FTP برای دسترسی به فایل استفاده کنید.
- به دنبال مقدار $table_prefix در کد بگردید.
- پیشوند دیتابیس پیش فرض وردپرس wp_ را با یک پیشوند جدید جایگزین کنید. از ترکیب حروف و اعداد برای ایجاد یک پیشوند منحصر به فرد برای وب سایت خود استفاده کنید.
- روی Save & Close کلیک کنید.
- با بازگشت به داشبورد کنترل پنل، به بخش Databases بروید و روی phpMyAdmin کلیک کنید. سپس وارد دیتابیس سایت شوید.
- اگر چندین دیتابیس دارید، نام دیتابیس مد نظر را در فایل wp-config.php پیدا کنید. سپس به دنبال بلاک کد زیر باشید:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'MySQL Database' );
- به سمت پایین اسکرول کنید و تیک گزینه check all را بزنید.
- روی منوی کشویی With selected: کلیک کرده و گزینه Replace table prefix را انتخاب کنید.
به روز رسانی مقادیر پیشوند در جداول
بسته به تعداد افزونههای وردپرس نصب شده در سایت شما، ممکن است لازم باشد برخی از مقادیر را در پایگاه داده به صورت دستی به روز کنید. این کار را با اجرای کوئریهای SQL جداگانه روی جداولی انجام دهید که احتمالاً مقادیری با پیشوند wp_ دارند. این موارد شامل گزینهها و جداول usermeta میشوند.
از کد زیر برای فیلتر کردن تمام مقادیری که دارای پیشوند زیر هستند استفاده کنید:
SELECT * FROM `wp_1secure1_tablename` WHERE `field_name` LIKE '%wp_%'
wp_1secure1_tablename حاوی نام جدولی است که میخواهید کوئری را در آن اجرا کنید. در همین حال، field_name نام فیلد یا ستون را نشان میدهد که به احتمال زیاد مقادیر با پیشوند wp_ در آن ظاهر میشوند.
در اینجا نحوه تغییر دستی مقدار پیشوند برای شما آورده شده است:
- از داشبورد phpMyAdmin، به جدولی با مقدار پیشوندی که میخواهید بهروزرسانی کنید، بروید. به عنوان مثال، wp_1secure1_usermeta را باز کنید.
- به تب SQL در نوار منوی بالا بروید.
- کد بالا را در ویرایشگر کوئری SQL وارد کنید تا مقادیر حاوی wp_ فیلتر شوند و روی گزینه Go کلیک کنید. مطمئن شوید که اطلاعات را مطابق با جدول واقعی و نام فیلدهای خود تغییر دادهاید.
- نتایج فیلتر ظاهر میشود. روی دکمه Edit در کنار فیلد مورد نظر کلیک کنید.
- مقدار پیشوند را تغییر دهید و روی Go کلیک کنید. مراحل 4 و 5 را برای تمام مقادیر فیلتر شده انجام دهید.
- از مرحله 1 برای بقیه جداول داخل دیتابیس تکرار کنید تا همه مقادیر با پیشوند wp_ به روز شوند.
XML-RPC را غیرفعال کنید
XML-RPC یک ویژگی وردپرس برای دسترسی و انتشار محتوا از طریق دستگاههای تلفن همراه، فعال کردن ترک بک و پینگ بک و استفاده از افزونه Jetpack در وب سایت وردپرس شما است.
با این حال، XML-RPC دارای نقاط ضعفی است که هکرها میتوانند از آنها سوء استفاده کنند. این ویژگی به آنها اجازه میدهد بدون اینکه توسط نرمافزار امنیتی شناسایی شوند، چندین بار برای ورود به سیستم تلاش کنند و سایت شما را مستعد حملات brute force میکند.
هکرها همچنین میتوانند از عملکرد پینگ بک XML-RPC برای انجام حملات DDoS استفاده کنند. این مسئله به مهاجمان اجازه میدهد تا پینگ بکهای مد نظر خود را به هزاران وب سایت در یک زمان ارسال کنند که میتواند سایتهای هدف را خراب کند.
برای تعیین اینکه آیا XML-RPC فعال است یا خیر، سایت خود را از طریق یک سرویس اعتبارسنجی XML-RPC اجرا کنید و ببینید آیا پیام موفقیت آمیز دریافت میکنید یا خیر. این بدان معنی است که تابع XML-RPC در حال اجرا است.
می توانید عملکرد XML-RPC را با استفاده از یک افزونه یا به صورت دستی غیرفعال کنید.
غیرفعال کردن XML-RPC با استفاده از یک افزونه
استفاده از یک افزونه راه سریعتر و سادهتری برای مسدود کردن ویژگی XML-RPC در وب سایت شما است. توصیه میکنیم از افزونه Disable XML-RPC Pingback استفاده کنید. این افزونه به طور خودکار برخی از عملکردهای XML-RPC را خاموش میکند و از انجام حملات هکرها با استفاده از این نقص امنیتی وردپرس جلوگیری میکند.
غیرفعال کردن XML-RPC به صورت دستی
راه دیگر برای متوقف کردن تمام XML-RPC دریافتی، غیرفعال کردن آن به صورت دستی است. فایل htaccess. را در دایرکتوری روت (root) خود پیدا کنید و قطعه کد زیر را در آن قرار دهید:
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from 000.00.000.000 </Files>
برای اینکه XML-RPC به یک IP خاص دسترسی داشته باشد، آدرس IP را جایگزین 000.00.000.000 کنید یا خط کد را به طور کامل حذف کنید.
نسخه وردپرس را مخفی کنید
اگر هکرها بدانند که از کدام نسخه وردپرس استفاده میکنید، میتوانند راحتتر وارد وب سایت شما شوند. آنها میتوانند از آسیب پذیریهای آن نسخه برای حمله به سایت شما استفاده کنند، به خصوص اگر نسخه وردپرس شما قدیمی باشد.
خوشبختانه، این امکان وجود دارد که اطلاعات مربوطه را از سایت خود با استفاده از ویرایشگر قالب وردپرس پنهان کنید. برای این کار مراحل زیر را دنبال کنید:
- از داشبورد وردپرس خود، به Appearance و سپس به Theme Editor بروید.
- تم فعلی خود را انتخاب کنید و فایل functions.php را انتخاب کنید.
- برای حذف شماره نسخه از هدر و فیدهای RSS، کد زیر را در فایل functions.php قرار دهید:
function dartcreations_remove_version() { return ''; } add_filter('the_generator', 'dartcreations_remove_version');
- متا تگ مولد وردپرس نیز شماره نسخه وردپرس را نمایش میدهد. این خط را اضافه کنید تا از شر آن خلاص شوید:
remove_action('wp_head', 'wp_generator');
- برای ذخیره تغییرات روی Update File کلیک کنید.
هاتلینکها را مسدود کنید
هاتلینکینگ (Hotlinking) اصطلاحی است مربوط به زمانی که شخصی محتوای وب سایت شما، معمولاً یک تصویر، را در وب سایت خود نمایش میدهد. هر بار که کاربر از وب سایتی بازدید میکند که دارای هاتلینک به محتوای شما است، از منابع وب سرور شما استفاده میکند و سرعت سایت شما را کاهش میدهد.
برای اینکه ببینید آیا محتوای شما لینک شده است یا خیر، عبارت زیر را در Google Images تایپ کنید و نام دامنه خود را جایگزین yourwebsite.com کنید:
inurl:yourwebsite.com -site:yourwebsite.com
برای جلوگیری از هاتلینکینگ، از یک سرویس گیرنده FTP، یک افزونه امنیتی وردپرس یا یک CDN استفاده کنید. میتوانید به صورت دستی نیز تنظیمات کنترل پنل را ویرایش کنید.
مجوزهای فایل را مدیریت کنید
با تعیین اینکه کدام کاربر میتواند فایلها یا پوشههای وردپرس شما را بخواند، در آنها بنویسند یا آنها را اجرا کند، از دسترسی هکرها به حساب مدیریت خود جلوگیری کنید.
میتوانید با استفاده از File Manager، سرویس گیرنده FTP یا از طریق کامَند لاین (command line) وب هاست خود، مدیریت مجوزهای فایل و پوشه را انجام دهید.
به طور کلی، مجوزها به طور پیش فرض تنظیم میشوند که ممکن است بسته به فایلها یا پوشههای مختلف متفاوت باشد. مخصوصاً برای پوشه wp-admin و فایل wp-config، مطمئن شوید که اجازه نوشتن آن را فقط به Owner میدهید.
نتیجه گیری
حملات سایبری ممکن است به اشکال مختلف، از تزریق بدافزار گرفته تا حملات DDoS انجام شوند. وب سایتهای وردپرسی، به دلیل محبوبیت CMS، هدف رایجی برای هکرها هستند. بنابراین، صاحبان وب سایتها باید بدانند که چگونه امنیت وردپرس خود را افزایش دهند.
با این حال، افزایش امنیت وردپرس کاری نیست که بتوان به یکباره آن را انجام داد. شما باید به طور مداوم وب سایت خود را ارزیابی کنید. زیرا حملات سایبری همیشه در حال توسعه هستند. خطر همیشه وجود خواهد داشت، اما شما میتوانید اقدامات مربوط به امنیت وردپرس را برای کاهش این خطرات اعمال کنید.
امیدواریم این مقاله به شما در درک اهمیت اقدامات امنیتی مربوط به وردپرس و نحوه اجرای آنها کمک کرده باشد.
اگر سوالی دارید یا نکات امنیتی بیشتری برای وردپرس به ذهنتان میرسد، میتوانید دیدگاه خود را با ما در میان بگذارید.
سوالات متداول
آیا وردپرس به فایروال نیاز دارد؟
راه اندازی فایروال وب سایت ضروری است. زیرا به محافظت از سایت وردپرس شما در برابر هکرها یا سایر اشکال حملات سایبری با مسدود کردن ترافیک ناخواسته کمک میکند. از آنجایی که وردپرس فایروال وب سایت داخلی ندارد، میتوانید با دانلود افزونهای مانند Sucuri آن را راه اندازی کنید.
آیا وردپرس به راحتی هک میشود؟
به عنوان یک پلتفرم، وردپرس برای استفاده بیخطر است. امنیت وردپرس نه تنها به فناوری بلکه به عوامل انسانی نیز مربوط میشود. مهم نیست که پلتفرم چقدر ایمن باشد، اگر سایر اقدامات امنیتی (استفاده از رمزهای عبور قوی و غیره) را انجام ندهید، سایت شما میتواند به راحتی هدف هکرها قرار بگیرد.
چرا سایت وردپرس من امن نیست؟
اگر مرورگر شما نشان دهد که سایت وردپرس شما ایمن نیست، بدان معنی است که سایت شما گواهی SSL ندارد یا SSL به درستی پیکربندی نشده است. برای رفع مشکل، یک گواهی SSL را نصب کنید و در قسمت تنظیماتتان HHTP را به HTTPS تغییر دهید.
آیا استفاده از افزونه امنیتی برای وردپرس ضروری است؟
بله، نصب یک افزونه امنیتی اسکنر هک مانند Jetpack و Sucuri میتواند به محافظت طولانی مدت از وب سایت شما کمک کند. به یاد داشته باشید که فقط موارد ضروری را نصب کنید زیرا داشتن افزونههای زیاد میتواند سایت شما را خراب کند.
چگونه میتوانم سایت وردپرس خود را بدون استفاده از افزونه ایمن کنم؟
با اطمینان از اینکه از یک وب هاست ایمن استفاده میکنید شروع کنید. سپس، سایت خود را برای امنیت بهتر وردپرس پیکربندی کنید: مجوزهای فایل را مدیریت کنید، گزارش خطای PHP و XML-RPC را غیرفعال کنید، دسترسی به wp-config.php را محدود کنید و هات لینک را از سایر وب سایتها مسدود کنید.
چرا وردپرس به این میزان هک میشود؟
بسیاری از سایتهای وردپرس هک میشوند زیرا مالک سایت از اقدامات امنیتی کافی استفاده نمیکند. این امر باعث میشود تا سایتها با آسیب پذیریهای مختلف خود، راه را برای مهاجمان بالقوه باز کنند. مهاجمان همچنین به طور منظم وب سایتهای وردپرس را هدف قرار میدهند. زیرا تقریباً نیمی از وب سایتهای موجود ماهیت وردپرسی دارند.
چرا سایت وردپرس من مورد حمله قرار میگیرد؟
سایت وردپرس شما ممکن است دارای آسیبپذیریهای امنیتی مانند افزونههای قدیمی، رمزهای عبور ضعیف و دسترسی محافظت نشده به فهرست wp-admin باشد. از چک لیست امنیت وردپرس که ارائه کردیم استفاده کنید تا مطمئن شوید که اقدامات امنیتی کافی را در سایت خود اعمال کردهاید.
بهترین افزونه امنیتی وردپرس چیست؟
ما Wordfence یا Sucuri را به عنوان بهترین افزونههای امنیتی وردپرس به شما توصیه میکنیم. هر دوی این افزونهها به صورت مشابه کار میکنند. اگر یک فروشگاه آنلاین دارید Sucuri یک افزونه عالی برای شما است. اما اگر به دنبال یک افزونه رایگان هستید، Wordfence یک گزینه عالی است.