
امنیت وردپرس: چکلیست کامل پیشگیری از هک شدن سایت
اگر سایت وردپرسی شما آلوده به ویروس یا بدافزار شده باشد، ممکن است با مشکلاتی مانند افت رتبه سئو، کاهش سرعت، نمایش پیغامهای مخرب به کاربران یا حتی مسدود شدن سایت توسط گوگل مواجه شوید.
بیشتر هکهای وردپرس قابل پیشگیری بودند — نه به خاطر پیچیدگی حمله، بلکه به خاطر غفلت از چند اصل ساده امنیتی. این مقاله یک چکلیست عملی است؛ اگر همه موارد آن را پیادهسازی کنید، ریسک هک شدن به کمتر از ۵٪ موارد معمول میرسد.
اگر سایتتان الان هک شده و دنبال راهحل اورژانسی هستید، ابتدا مقاله پاکسازی سایت وردپرسی هکشده را بخوانید. این مقاله برای مرحله بعد — پیشگیری از تکرار — نوشته شده است.
Table of contents [Show]
- 1 لایه اول: بهروزرسانی منظم — سادهترین و مؤثرترین اقدام
- 2 لایه دوم: احراز هویت قوی
- 3 لایه سوم: پیکربندی امنیتی وردپرس
- 4 لایه چهارم: نظارت و هشدار
- 5 لایه پنجم: بکآپ منظم — بیمه امنیتی شما
- 6 لایه ششم: هاستینگ امن
- 7 چکلیست نهایی امنیت وردپرس
- 8 جمعبندی
- 9 لایه هفتم: امنیت پایگاه داده (Database Security)
- 10 لایه هشتم: فایروال برنامه وب (WAF)
- 11 لایه نهم: SSL و رمزگذاری ارتباطات
- 12 اشتباهات امنیتی رایجی که نباید مرتکب شوید
- 13 امنیت وردپرس در ۳۰ دقیقه — اگر الان شروع میکنید
لایه اول: بهروزرسانی منظم — سادهترین و مؤثرترین اقدام
بیشتر از ۵۶٪ سایتهای وردپرسی هکشده، از نرمافزار قدیمی استفاده میکردند. بهروزرسانی هفتگی (حداقل ماهانه) این ریسک را به شکل چشمگیری کاهش میدهد.
چه چیزهایی باید بهروز شوند
- هسته وردپرس: Dashboard → Updates → Update Now
- همه پلاگینهای فعال — حتی پلاگینهایی که «خیلی استفاده نمیشوند»
- همه تمها — حتی تمهای غیرفعال؛ اگر استفاده نمیکنید، حذفشان کنید
- PHP: از هاست بخواهید PHP سرور را به آخرین نسخه پایدار (8.2+) ارتقا دهند
بهروزرسانی خودکار
برای هسته وردپرس، بهروزرسانی امنیتی خودکار را فعال کنید. در wp-config.php:
define('WP_AUTO_UPDATE_CORE', 'minor');
برای پلاگینهای حیاتی (Wordfence، Akismet) میتوانید auto-update را از پنل وردپرس فعال کنید.
لایه دوم: احراز هویت قوی
پسورد قوی — اما واقعاً قوی
پسورد قوی یعنی حداقل ۱۶ کاراکتر شامل حروف بزرگ/کوچک، اعداد و نمادها. از Password Manager استفاده کنید — Bitwarden رایگان و قابلاعتماد است. هرگز از یک پسورد در چند سرویس استفاده نکنید.
احراز هویت دو مرحلهای (2FA)
2FA مهمترین لایه امنیتی برای ادمین است. حتی اگر پسورد لو رفت، بدون کد موقت (OTP) لاگین ممکن نیست. پلاگینهای توصیهشده:
- Wordfence Login Security (رایگان)
- WP 2FA (رایگان با امکانات پولی)
- Google Authenticator for WordPress
نام کاربری «admin» را تغییر دهید
اکثر حملات Brute Force ابتدا نام کاربری «admin» را امتحان میکنند. اگر نام کاربری ادمینتان «admin» است، یک کاربر جدید با نام متفاوت و دسترسی Administrator بسازید، همه پستها را به آن انتقال دهید، سپس کاربر «admin» را حذف کنید.
محدود کردن تلاشهای لاگین
پلاگین Limit Login Attempts Reloaded یا Wordfence بعد از چند تلاش ناموفق، IP را مسدود میکند. این حملات Brute Force را عملاً غیرممکن میکند.
لایه سوم: پیکربندی امنیتی وردپرس
کلیدهای امنیتی wp-config.php را تغییر دهید
کلیدهای Salt را از api.wordpress.org/secret-key/1.1/salt تولید کنید و در wp-config.php جایگزین کنید. این باعث میشود همه sessionهای موجود باطل شوند.
اجرای PHP در پوشه Uploads را غیرفعال کنید
هکرها اغلب فایل PHP مخرب را در wp-content/uploads آپلود و اجرا میکنند. با اضافه کردن این فایل .htaccess در پوشه uploads، جلوی آن را بگیرید:
<Files *.php>deny from all</Files>
XML-RPC را غیرفعال کنید (اگر نیاز ندارید)
XML-RPC یک ویژگی قدیمی وردپرس است که اغلب برای حملات استفاده میشود. اگر از اپهای موبایل وردپرس یا Jetpack استفاده نمیکنید، آن را غیرفعال کنید. در .htaccess:
<Files xmlrpc.php>deny from all</Files>
Directory Listing را غیرفعال کنید
در .htaccess اصلی این خط را اضافه کنید:
Options -Indexes
بدون این تنظیم، هکر میتواند محتوای پوشههای سایت را مشاهده کند.
REST API را برای کاربران غیرلاگین محدود کنید
اگر سایت API عمومی ندارید، دسترسی کاربران ناشناس به REST API را محدود کنید. این میتواند اطلاعات کاربران را از افشا محافظت کند.
لایه چهارم: نظارت و هشدار
افزونه امنیتی نصب کنید
یکی از این سه افزونه را انتخاب کنید (نه هر سه — چند افزونه امنیتی با هم تداخل ایجاد میکنند):
- Wordfence Security (توصیهشده): فایروال، اسکنر، مسدودکننده IP، 2FA — همه در یک افزونه
- Sucuri Security: اسکنر ابری، هشدار ایمیل، بررسی سلامت فایلهای core
- iThemes Security: بیش از ۳۰ قابلیت امنیتی
هشدار ایمیل برای لاگینهای مشکوک
Wordfence میتواند هر بار که یک ادمین لاگین میکند (بهخصوص از IP جدید) ایمیل هشدار بفرستد. این بهمحض شروع نفوذ اطلاع میدهد.
Activity Log
افزونه WP Activity Log تمام تغییرات در پنل وردپرس را ثبت میکند — چه کسی چه وقت چه فایلی را تغییر داد. اگر هک اتفاق افتاد، میتوانید دقیقاً ردپای هکر را دنبال کنید.
لایه پنجم: بکآپ منظم — بیمه امنیتی شما
بهترین سیستم امنیتی ممکن است شکسته شود. بکآپ روزانه یعنی در بدترین حالت فقط یک روز محتوا از دست میرود.
قانون ۳-۲-۱ بکآپ
- ۳ نسخه بکآپ داشته باشید
- در ۲ مکان مختلف ذخیره شوند
- ۱ نسخه Offsite باشد (Google Drive، Dropbox، S3)
افزونههای بکآپ
- UpdraftPlus: رایگان، ذخیره در Google Drive/Dropbox، زمانبندی خودکار
- BackupBuddy: پولی اما کاملترین راهحل
- Jetpack Backup: بکآپ Real-Time برای سایتهای با تغییرات مکرر
بکآپ را تست کنید
بکآپ بدون آزمایش بیارزش است. هر سه ماه یک بار بکآپ را در یک محیط test ریستور کنید تا مطمئن شوید درست کار میکند.
لایه ششم: هاستینگ امن
امنیت سایت فقط به وردپرس بستگی ندارد — هاستینگ هم اهمیت دارد.
ویژگیهای هاست امن
- Imunify360 یا ClamAV (اسکنر بدافزار سمت سرور)
- ModSecurity (فایروال برنامه وب در سطح سرور)
- Isolation بین اکانتهای مختلف (مهم برای هاست اشتراکی)
- Automatic malware detection و هشدار
- بکآپ روزانه از سمت هاست (علاوه بر بکآپ خودتان)
چکلیست نهایی امنیت وردپرس
این موارد را تیک بزنید:
- ☐ وردپرس، همه پلاگینها و تمها بهروز هستند
- ☐ نام کاربری «admin» وجود ندارد
- ☐ پسورد ادمین ۱۶+ کاراکتر دارد
- ☐ 2FA برای همه ادمینها فعال است
- ☐ Limit Login Attempts فعال است
- ☐ افزونه امنیتی (Wordfence یا Sucuri) نصب و پیکربندی شده
- ☐ PHP در پوشه uploads غیرفعال شده
- ☐ XML-RPC غیرفعال شده (اگر نیاز ندارید)
- ☐ Directory Listing غیرفعال شده
- ☐ بکآپ روزانه خودکار تنظیم شده
- ☐ بکآپ در مکان Offsite ذخیره میشود
- ☐ تمها و پلاگینهای غیرضروری حذف شدهاند
- ☐ SSL فعال است و همه ترافیک به HTTPS ریدایرکت میشود
جمعبندی
امنیت وردپرس یک پروژه یکباره نیست — یک فرایند مداوم است. اما با پیادهسازی شش لایهای که در این مقاله توضیح داده شد، سایت شما در برابر بیش از ۹۵٪ حملات رایج محافظت میشود.
اگر سایتتان الان هک شده، ابتدا راهنمای پاکسازی اورژانسی را دنبال کنید، سپس برگردید و این چکلیست را کامل کنید. اگر در حال ساخت سایت جدید هستید، با طراحی سایت حرفهای که از ابتدا با پیکربندی امنیتی درست ساخته شده شروع کنید. موفقیت در دیجیتال مارکتینگ و سئو سایت هم به سایتی سالم و ایمن نیاز دارد.
لایه هفتم: امنیت پایگاه داده (Database Security)
دیتابیس وردپرس حاوی همه محتوا، کاربران و تنظیمات سایت است — هدف اصلی حملات SQL Injection.
پیشوند جدولها را تغییر دهید
بهصورت پیشفرض جدولهای وردپرس با پیشوند wp_ شروع میشوند. هکرها این را میدانند. پیشوند را به چیزی مثل xyz93_ تغییر دهید. این کار را با افزونه iThemes Security یا Better WP Security میتوان کرد — یا دستی در wp-config.php قبل از نصب.
دسترسی مستقیم به phpMyAdmin را محدود کنید
phpMyAdmin نباید از همه IPها قابل دسترس باشد. از cPanel میتوانید دسترسی به phpMyAdmin را به IP اختصاصیتان محدود کنید.
یوزر دیتابیس با حداقل دسترسی
یوزر MySQL که وردپرس استفاده میکند فقط باید SELECT، INSERT، UPDATE، DELETE و CREATE داشته باشد — نه DROP، ALTER یا GRANT. این اصل حداقل دسترسی (Principle of Least Privilege) را در دیتابیس پیاده میکند.
لایه هشتم: فایروال برنامه وب (WAF)
WAF یا Web Application Firewall، ترافیک مخرب را قبل از رسیدن به وردپرس فیلتر میکند — مثل یک نگهبان جلوی در ورودی.
WAF ابری (Cloud-based)
- Cloudflare (رایگان): DNS سایت را به Cloudflare منتقل کنید. پلن رایگان فایروال پایه، محافظت در برابر DDoS و CDN را میدهد. پلن Pro ($20/month) WAF کاملتری دارد
- Sucuri Firewall: تخصصیترین WAF برای وردپرس — ترافیک ابتدا از سرورهای Sucuri عبور میکند
WAF افزونه (Plugin-based)
Wordfence یک WAF سمت سرور دارد که بهصورت پیشفرض در حالت «Learning Mode» است. بعد از چند روز، آن را به «Enabled and Protecting» تغییر دهید.
لایه نهم: SSL و رمزگذاری ارتباطات
اگر سایت هنوز روی HTTP است، این اولین اقدامی است که باید انجام دهید — نه فقط برای امنیت، بلکه چون گوگل HTTPS را عامل رتبهبندی میداند.
نصب SSL رایگان با Let's Encrypt
اغلب هاستهای ایرانی Let's Encrypt را از پنل cPanel یا Cpanel ارائه میدهند. SSL را فعال کنید و سپس همه ترافیک HTTP را با .htaccess به HTTPS ریدایرکت کنید:
RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
تنظیم HSTS
HSTS (HTTP Strict Transport Security) به مرورگر میگوید همیشه از HTTPS استفاده کند. این از حملات SSL Stripping جلوگیری میکند.
اشتباهات امنیتی رایجی که نباید مرتکب شوید
نصب همزمان چند افزونه امنیتی
Wordfence و iThemes Security را باهم نصب نکنید. این دو با هم تداخل ایجاد میکنند، سرور را کند میکنند و ممکن است سایت را خراب کنند. یکی را انتخاب کنید.
فقط هاستینگ را مقصر دانستن
وقتی سایت هک میشود، اولین واکنش اغلب «تقصیر هاست بود» است. واقعیت: بیشتر هکها از داخل سایت (پلاگین آسیبپذیر، تم nulled، پسورد ضعیف) نشأت میگیرند، نه از ضعف هاستینگ.
بکآپ بدون تست
بکآپهایی که هرگز تست ریستور نشدهاند، ممکن است وقتی به آنها نیاز دارید کار نکنند. هر سه ماه یک بار بکآپ را در محیط staging ریستور کنید.
نادیده گرفتن هشدارهای Wordfence
بسیاری از کاربران Wordfence را نصب میکنند اما ایمیلهای هشدار آن را نادیده میگیرند. این ایمیلها اغلب اولین علامت حمله در جریان هستند.
امنیت وردپرس در ۳۰ دقیقه — اگر الان شروع میکنید
اگر وقت محدود دارید و میخواهید الان مهمترین کارها را انجام دهید، این ترتیب را دنبال کنید:
- دقیقه ۱-۵: همه پلاگینها، تمها و هسته وردپرس را بهروز کنید
- دقیقه ۵-۱۰: پسورد ادمین را به یک پسورد ۲۰ کاراکتری تغییر دهید
- دقیقه ۱۰-۲۰: Wordfence را نصب و اسکن اولیه را اجرا کنید
- دقیقه ۲۰-۲۵: 2FA را برای حساب ادمین فعال کنید
- دقیقه ۲۵-۳۰: UpdraftPlus را نصب و اولین بکآپ را بگیرید
این ۳۰ دقیقه سطح امنیت سایتتان را به طرز چشمگیری بالا میبرد. برای اطمینان از اینکه سایت شما از پایه امن است، گزینه طراحی سایت وردپرس با پیکربندی امنیتی پیشفرض یا طراحی سایت اختصاصی با معماری لاراول را در نظر بگیرید.

مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین



