وردپرس بیش از ۴۰ درصد وب را تشکیل میدهد و همین محبوبیت آن را تبدیل به هدف اول هکرها کرده است. هر روز هزاران سایت وردپرسی مورد حمله قرار میگیرند. اما خبر خوب این است که اکثر این حملات از آسیبپذیریهای شناختهشدهای استفاده میکنند که با چند اقدام ساده قابل پیشگیری هستند. امنیت وردپرس نیاز به تخصص پیشرفته ندارد، فقط نیاز به اجرای منظم چند اصل پایه دارد.
در این راهنما یک رویکرد لایهبهلایه به امنیت وردپرس ارائه میدهیم. از اقدامات اولیه که هر کسی میتواند انجام دهد تا تنظیمات پیشرفتهتر که سطح امنیت را به طور قابل توجهی بالا میبرند.
چرا امنیت وردپرس اهمیت حیاتی دارد؟
هک شدن تبعات جدی دارد که فراتر از یک مشکل فنی است:
- از دست رفتن اطلاعات: اطلاعات کاربران، مشتریان و محتوای سایت
- آسیب به اعتبار: کاربرانی که به سایت هکشده مراجعه میکنند ممکن است اطلاعاتشان به خطر بیفتد
- جریمه گوگل: گوگل سایتهای آلوده را از نتایج جستجو حذف یا با هشدار نمایش میدهد
- هزینه پاکسازی: تمیز کردن یک سایت هکشده زمانبر و گران است
- از دست رفتن درآمد: هر ساعت سایت آلوده یا غیرفعال باشد، ضرر مستقیم است
لایه اول: آپدیت همه چیز
بیش از نیمی از سایتهای وردپرس هکشده به دلیل نرمافزار قدیمی هستند. آسیبپذیریهای امنیتی در هسته وردپرس، افزونهها و قالبها شناسایی و در آپدیتها رفع میشوند. هکرها از همان لحظه انتشار یک آپدیت امنیتی شروع به اسکن سایتهای نیازمند آپدیت میکنند.
هسته وردپرس
آپدیتهای امنیتی را فوری نصب کنید. برای آپدیتهای minor (مثل ۶.۴.۱ به ۶.۴.۲) میتوانید آپدیت خودکار را فعال کنید. برای آپدیتهای major قبل از آپدیت یک بکاپ بگیرید.
افزونهها
افزونههای قدیمی بزرگترین ریسک امنیتی هستند. هر افزونه که در سایت نصب است یک درگاه ورود بالقوه است. افزونههایی که دیگر استفاده نمیکنید را حذف کنید نه فقط غیرفعال. افزونه غیرفعال هم میتواند هک شود. آپدیتهای افزونه را بلافاصله پس از انتشار نصب کنید.
قالب
قالب هم باید آپدیت باشد. مهمتر از آن: قالبهای نالشده (nulled) یا کرکشده هرگز استفاده نکنید. این قالبها اغلب حاوی backdoor هستند که به هکر دسترسی دائمی میدهند، حتی اگر بعداً همه چیز را آپدیت کنید.
لایه دوم: احراز هویت قوی
رمز عبور قوی
رمزهای عبور ضعیف هنوز یکی از شایعترین دلایل هک است. یک رمز عبور قوی باید:
- حداقل ۱۲ کاراکتر باشد (بهتر است ۱۶ یا بیشتر)
- ترکیبی از حروف بزرگ، کوچک، اعداد و علائم نگارشی باشد
- برای هر سایت و سرویس منحصربهفرد باشد
- از Password Manager مثل Bitwarden یا KeePass استفاده کنید
نام کاربری admin را عوض کنید
اگر نام کاربری admin دارید، هکر نصف کار را انجام داده و فقط باید رمز را حدس بزند. یک نام کاربری غیرقابل حدس انتخاب کنید. برای تغییر: یک کاربر جدید با همان سطح دسترسی بسازید، محتوا را به آن منتقل کنید، و کاربر admin را حذف کنید.
احراز هویت دو مرحلهای (2FA)
2FA مهمترین قدمی است که میتوانید برای امنیت ورود بردارید. حتی اگر رمز لو برود، بدون کد دوم نمیتوان وارد شد. افزونههای پیشنهادی:
- Wordfence Login Security: رایگان و قابل اعتماد
- WP 2FA: پشتیبانی از روشهای مختلف احراز هویت
- Google Authenticator: ساده و محبوب
محدود کردن تلاشهای ورود
Brute Force Attack یعنی هکر با نرمافزار هزاران رمز مختلف را امتحان میکند. با محدود کردن تعداد تلاشهای ناموفق میتوانید این حملات را خنثی کنید. افزونههای Limit Login Attempts Reloaded یا Login LockDown این کار را انجام میدهند.
لایه سوم: سختسازی وردپرس
آدرس ورود را تغییر دهید
پیشفرض وردپرس آدرس wp-admin/ و wp-login.php است. هکرها به صورت خودکار این آدرسها را اسکن میکنند. تغییر آدرس ورود با افزونههایی مثل WPS Hide Login یا iThemes Security امکانپذیر است. این کار نه تنها امنیت را بالا میبرد بلکه تعداد حملات Brute Force که روی سرور لاگ میشوند را به شدت کاهش میدهد.
ویرایش فایل از داشبورد را غیرفعال کنید
به صورت پیشفرض، ادمینهای وردپرس میتوانند کد افزونهها و قالبها را مستقیماً از داشبورد ویرایش کنند. اگر حساب ادمین هک شود، هکر میتواند بدافزار را مستقیماً در کد وارد کند. این قابلیت را غیرفعال کنید با اضافه کردن این خط به wp-config.php:
define('DISALLOW_FILE_EDIT', true);
اگر میخواهید نصب افزونه از داشبورد را هم غیرفعال کنید (توصیهشده برای سایتهای production):
define('DISALLOW_FILE_MODS', true);
پرمیشنهای فایل را درست تنظیم کنید
تنظیمات امن:
- فایلها: ۶۴۴ (مالک میتواند بخواند و بنویسد، بقیه فقط بخوانند)
- پوشهها: ۷۵۵ (مالک میتواند بنویسد، بقیه فقط بخوانند و execute کنند)
- wp-config.php: ۶۰۰ یا ۶۴۰ (حساسترین فایل)
XML-RPC را غیرفعال کنید
XML-RPC یک قابلیت قدیمی است که به سرویسهای خارجی اجازه میدهد با وردپرس ارتباط برقرار کنند. اگر از آن استفاده نمیکنید، بهتر است غیرفعالش کنید. هکرها اغلب از XML-RPC برای Brute Force با سرعت بالا استفاده میکنند. افزونه Disable XML-RPC یا قوانین .htaccess میتوانند این کار را کنند.
لایه چهارم: فایروال و نظارت
Web Application Firewall (WAF)
WAF ترافیک ورودی را بررسی میکند و حملات شناختهشده را قبل از رسیدن به وردپرس مسدود میکند. دو نوع اصلی وجود دارد:
- WAF ابری (مثل Cloudflare): ترافیک قبل از رسیدن به سرور شما از طریق Cloudflare عبور میکند. رایگان با قابلیتهای پایه و پلنهای پولی پیشرفتهتر دارد.
- WAF افزونه (مثل Wordfence): روی خود سرور نصب میشود. بعد از رسیدن ترافیک به سرور، قبل از پردازش وردپرس فیلتر میکند.
اسکن منظم بدافزار
افزونههایی مثل Wordfence یا Sucuri به صورت منظم فایلهای سایت را با نسخههای اصلی مقایسه میکنند و تغییرات غیرمجاز را شناسایی میکنند. این اسکنها را حداقل هفتگی تنظیم کنید.
نظارت بر فعالیتها
Activity Log سایت را بررسی کنید. ورود از IP های مشکوک، تغییرات فایل در ساعات غیرمعمول، یا ساخت کاربران جدید از نشانههای هک است.
لایه پنجم: بکاپ منظم و قابل اعتماد
بکاپ آخرین خط دفاعی است. اگر همه اقدامات دیگر شکست بخورند، یک بکاپ سالم به شما اجازه میدهد در چند دقیقه سایت را بازگردانید.
- حداقل روزانه بکاپ بگیرید، برای سایتهای فعال هر چند ساعت یکبار
- بکاپ را خارج از سرور نگه دارید (Google Drive، S3، سرور دیگر)
- گاهی بکاپ را تست کنید — بکاپی که قابل بازیابی نباشد بیارزش است
- افزونههای پیشنهادی: UpdraftPlus، BackWPup، Jetpack Backup
تنظیمات پیشرفته امنیتی
Security Headers
با اضافه کردن header های امنیتی به پاسخهای HTTP میتوانید در برابر حملات XSS، Clickjacking و غیره محافظت کنید:
- X-Frame-Options: جلوی Clickjacking را میگیرد
- Content-Security-Policy: محدود میکند چه منابعی بارگذاری شوند
- X-Content-Type-Options: جلوی MIME type sniffing را میگیرد
SSL/HTTPS
اگر هنوز HTTP دارید، فوری به HTTPS مهاجرت کنید. SSL امروز رایگان است (Let's Encrypt) و اکثر هاستها آن را ارائه میدهند. اطلاعات ورود و دادههای کاربران بدون SSL به صورت plaintext ارسال میشوند.
سوالات متداول
آیا یک سایت کوچک هم هدف هکرها است؟
بله. هکرها اغلب با باتهای خودکار اینترنت را اسکن میکنند و سایتهای آسیبپذیر را فارغ از اندازه یا محتوا هدف قرار میدهند. یک سایت کوچک هکشده میتواند برای ارسال اسپم، هاست کردن بدافزار، یا شرکت در حملات DDoS استفاده شود.
Wordfence یا Sucuri کدام بهتر است؟
هر دو ابزارهای خوبی هستند. Wordfence رایگانتر است و WAF آن روی سرور خودتان اجرا میشود. Sucuri WAF ابری دارد که ترافیک را قبل از رسیدن به سرور فیلتر میکند که اثربخشی بیشتری دارد اما هزینه دارد. برای اکثر سایتها Wordfence رایگان کافی است.
چند وقت یکبار باید رمز عبور را عوض کرد؟
اگر رمز قوی و منحصربهفرد دارید و 2FA فعال است، نیازی به تغییر منظم رمز نیست. رمز را فقط وقتی شک دارید که لو رفته، یا بعد از یک حادثه امنیتی تغییر دهید. اما اگر از همان رمز در چند سایت استفاده میکنید، باید تمام آنها را تغییر دهید.
آیا سایت روی هاست اشتراکی امنتر است یا VPS؟
VPS امنیت بیشتری میدهد چون منابع و محیط اختصاصی دارید و سایتهای دیگر نمیتوانند بر امنیت شما تأثیر بگذارند. در هاست اشتراکی اگر یک سایت دیگر روی همان سرور هک شود، ممکن است به سایت شما هم آسیب برساند. برای سایتهای تجاری جدی، VPS گزینه توصیهشده است.
جمعبندی
امنیت وردپرس یک فرایند مستمر است، نه یک کار یکبار. با اجرای لایههای امنیتی که در این راهنما توضیح داده شد، میتوانید ریسک هک را به شدت کاهش دهید: آپدیت منظم، رمزهای قوی و 2FA، سختسازی تنظیمات، فایروال و نظارت، و بکاپ منظم. این پنج لایه با هم یک سپر قوی در مقابل اکثر حملات رایج ایجاد میکنند.
به یاد داشته باشید که امنیت هم به سطح هاست وابسته است. هاستی که سرورهایش بهروز باشد، فایروال سختافزاری داشته باشد و محیط را نظارت کند، لایه اضافهای از حفاظت میدهد که مکمل اقدامات سطح وردپرس شماست.