امنیت وردپرس: چک‌لیست کامل پیشگیری از هک شدن سایت

امنیت وردپرس: چک‌لیست کامل پیشگیری از هک شدن سایت

اگر سایت وردپرسی شما آلوده به ویروس یا بدافزار شده باشد، ممکن است با مشکلاتی مانند افت رتبه سئو، کاهش سرعت، نمایش پیغام‌های مخرب به کاربران یا حتی مسدود شدن سایت توسط گوگل مواجه شوید.

بیشتر هک‌های وردپرس قابل پیشگیری بودند — نه به خاطر پیچیدگی حمله، بلکه به خاطر غفلت از چند اصل ساده امنیتی. این مقاله یک چک‌لیست عملی است؛ اگر همه موارد آن را پیاده‌سازی کنید، ریسک هک شدن به کمتر از ۵٪ موارد معمول می‌رسد.

اگر سایت‌تان الان هک شده و دنبال راه‌حل اورژانسی هستید، ابتدا مقاله پاکسازی سایت وردپرسی هک‌شده را بخوانید. این مقاله برای مرحله بعد — پیشگیری از تکرار — نوشته شده است.

Table of contents [Show] [Hide]

لایه اول: به‌روزرسانی منظم — ساده‌ترین و مؤثرترین اقدام

بیشتر از ۵۶٪ سایت‌های وردپرسی هک‌شده، از نرم‌افزار قدیمی استفاده می‌کردند. به‌روزرسانی هفتگی (حداقل ماهانه) این ریسک را به شکل چشمگیری کاهش می‌دهد.

چه چیزهایی باید به‌روز شوند

  • هسته وردپرس: 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 On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ 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 را نصب و اولین بک‌آپ را بگیرید

این ۳۰ دقیقه سطح امنیت سایت‌تان را به طرز چشمگیری بالا می‌برد. برای اطمینان از اینکه سایت شما از پایه امن است، گزینه طراحی سایت وردپرس با پیکربندی امنیتی پیشفرض یا طراحی سایت اختصاصی با معماری لاراول را در نظر بگیرید.

اشتراک گذاری :
مریم گوهرزاد
نویسنده

مریم گوهرزاد

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

https://t.me/artarasaneh
tel:09193426251
https://wa.me/+989193426251
https://instagram.com/artarasaneh_com