چک لیست امنیت سایت وردپرسی

چک‌لیست کامل و جامع امنیت سایت وردپرسی

مرجع نهایی برای محافظت از سایت شما

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

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

با دنبال کردن این چک‌لیست، می‌توانید امنیت سایت وردپرسی خود را به سطح حرفه‌ای برسانید و از خطر هک، حملات brute-force و بدافزارها جلوگیری کنید.

مرحله ۱: پیش‌نیازها و آماده‌سازی اولیه

بکاپ فایل‌ها و دیتابیس قبل از هرگونه تغییر

افزونه پیشنهادی:

روش دستی:

  • بکاپ پوشه wp-content
  • Export دیتابیس از phpMyAdmin

همیشه آخرین نسخه پایدار نصب شود.

دستور manual برای بررسی نسخه: از بخش پیشخوان → “Dashboard” → “Updates”

نسخه توصیه‌شده حداقل 8.1 یا بالاتر

بررسی اینکه سایت با HTTPS بارگذاری می‌شود.
نصب و فعالسازی SSL (Let’s Encrypt رایگان یا گواهی تجاری)
بررسی mixed-content: تمام URLهای داخلی با HTTPS باشند.

مرحله ۲: افزونه‌های امنیتی وردپرس

افزونه All In One WP Security & Firewall

افزونه امنیت و فایروال وردپرس پرو | پلاگین All In One WP Security

کاربرد اصلی:

  • پیاده‌سازی امنیت لایه‌ای (user, login, database, file system)
  • فایروال ساده و مانیتورینگ ورود

نصب و پیکربندی:

  • Plugins → Add New → All In One WP Security & Firewall → Install & Activate
  • WP Security → Dashboard → Security Strength Meter → Recommended settings apply
  • Firewall → Basic + Intermediate + Advanced → مرحله به مرحله فعال شود
  • User Account → Force Strong Passwords و Lockout بعد از تلاش‌های ناموفق

نکات فنی:

  • تغییر پیش‌فرض login URL
  • بررسی دسترسی پوشه‌ها و فایل‌ها از بخش File System Security

افزونه Wordfence Security – فایروال و اسکن بدافزار

افزونه وردفنس | پلاگین امنیت Wordfence Security Pro

کاربرد اصلی:

  • فایروال اپلیکیشن وب (WAF)
  • اسکن بدافزار و آسیب‌پذیری‌ها
  • مانیتورینگ فعالیت کاربران و لاگ‌ها

نصب و پیکربندی:

  • از مخزن وردپرس نصب شود: Plugins → Add New → Wordfence Security → Install & Activate
  • گزینه “Enable Firewall” را فعال کنید
  • تنظیمات اسکن خودکار: Scan Options → “Automatically repair/delete infected files”
  • Alerts → ایمیل مدیر سایت برای هشدارهای امنیتی فعال شود

نکات فنی:

  • Conflict با بعضی CDN‌ها ممکن است رخ دهد؛ تنظیمات IP یا caching را بررسی کنید
  • Resource Usage: سایت‌های بزرگ ممکن است بار روی سرور را افزایش دهد

افزونه iThemes Security – امنیت حساب کاربری و فایل‌ها

افزونه آیتمز سکیوریتی (solid security) | پلاگین امنیتی iThemes Security Pro

کاربرد اصلی:

  • جلوگیری از brute-force login
  • محدود کردن دسترسی فایل‌ها و ویرایش داخلی
  • اعمال 2FA و strong password policy

نصب و پیکربندی:

  • Plugins → Add New → iThemes Security → Install & Activate
  • Dashboard → Security Check → Apply recommended settings
  • Two-Factor Authentication → برای تمامی مدیران فعال شود
  • File Change Detection → برای مانیتور تغییرات فایل‌ها فعال شود

نکات فنی:

  • تنظیمات Lockout برای IP های مشکوک
  • بررسی Cron job برای اجرای گزارش‌ها و اسکن‌ها

افزونه UpdraftPlus – بکاپ و بازیابی

افزونه آپ درفت پلاس | افزونه بکاپ و انتقال سایت UpdraftPlus

کاربرد اصلی:

  • بکاپ خودکار و دستی از فایل‌ها و دیتابیس
  • بازیابی آسان بدون نیاز به دسترسی مستقیم به سرور

نصب و پیکربندی:

  • Plugins → Add New → UpdraftPlus → Install & Activate
  • Settings → Choose Backup Schedule: فایل‌ها و دیتابیس روزانه یا هفتگی
  • Remote Storage → Google Drive / Dropbox / S3
  • تست بکاپ: Restore test → اطمینان از سلامت بکاپ

نکات فنی:

  • رمزگذاری بکاپ‌ها برای امنیت بیشتر
  • جلوگیری از overloading سرور هنگام بکاپ خودکار

مرحله ۳: مدیریت کاربران و دسترسی‌ها

حذف یا غیرفعال کردن کاربران بلااستفاده

  • وردپرس → Users → All Users
  • بررسی کاربران بدون فعالیت یا ایمیل مشکوک
  • حذف یا تغییر نقش آنها به Subscriber حداقل دسترسی

نکات فنی:

  • همیشه قبل از حذف، مطمئن شوید محتوا و نوشته‌ها reassigned شده باشد
  • کاربران بلااستفاده ممکن است در آینده هدف حملات باشند

تعریف نقش‌های کاربری دقیق و محدود

نقش‌های پیش‌فرض وردپرس:

  • Administrator: کامل
  • Editor: مدیریت محتوا
  • Author: انتشار نوشته‌های خود
  • Contributor: نوشتن بدون انتشار
  • Subscriber: فقط خواندن و مشاهده

تنظیمات به صورت دستی :

  • از User → Edit → Role → نقش مناسب انتخاب شود

افزونه پیشنهادی:

افزونه مدیریت نقش و دسترسی کاربران | پلاگین User Role Editor Pro

  • تغییر دسترسی‌های هر نقش
  • ایجاد نقش سفارشی برای دسترسی دقیق
  • محدود کردن capabilityهایی مثل edit_theme_options, install_plugins
  • نقش‌ها دقیق و محدود باشند، از Administrator فقط برای مدیران واقعی استفاده شود

فعال کردن Two-Factor Authentication (2FA)

افزایش امنیت ورود با 2FA

افزونه پیشنهادی:

نکات فنی:

  • توصیه: فقط OTP روی موبایل یا اپلیکیشن Authenticator معتبر باشد
  • همه کاربران با دسترسی زیاد باید 2FA فعال کنند
  • Backup codes ذخیره شود

تغییر پیش‌فرض نام کاربری “admin”

نام کاربری پیش‌فرض admin یک هدف رایج حملات brute-force است

  • ایجاد کاربر جدید با نقش Administrator سپس Logout و حذف admin
  • یا تغییر نام کاربری از طریق دیتابیس
  • یا استفاده از افزونه های امنیتی

تغییر login URL

تغییر login URL به مسیر دلخواه (مثلاً /mylogin) می‌تواند امنیت را افزایش دهد.

محدود کردن تعداد تلاش‌های ورود

جلوگیری از حملات brute-force

دستی:

  • می‌توان با تنظیمات سرور (htaccess یا nginx) محدودیت ایجاد کرد

افزونه پیشنهادی:

نکات فنی:

  • تعداد تلاش‌ها: 5
  • بلاک کردن IP برای حداقل 15 دقیقه
  • White List آی‌پی‌های امن
  • تعداد تلاش‌های ورود محدود و لاگ‌ها مانیتور شوند

بررسی و مدیریت نشست‌های فعال

Logout کاربران بلااستفاده

افزونه پیشنهادی:

افزونه آیتمز سکیوریتی (solid security) | پلاگین امنیتی iThemes Security Pro

  • WP Activity Log یا Logged In Users → مدیریت نشست‌ها

نکات فنی:

  • بررسی sessionهای مشکوک: نام کاربری، IP، زمان ورود
  • اطمینان از logout خودکار پس از زمان مشخص

مرحله ۴: امنیت فایل‌ها و سرور

محافظت از فایل wp-config.php

  • فایل wp-config.php در ریشه وردپرس قرار دارد
  • محدود کردن دسترسی با htaccess

برای Apache

<files wp-config.php>
order allow,deny
deny from all
</files>

برای Nginx

location ~* wp-config.php {
deny all;
}

نکات فنی:

  • شامل اطلاعات دیتابیس و کلیدهای امنیتی است، حفاظت آن ضروری است
  • مطمئن شوید که فایل در مسیر ریشه با دسترسی 600 یا 644 باشد

محافظت از فایل .htaccess

جلوگیری از لیست شدن دایرکتوری‌ها و دسترسی غیرمجاز

#Apache
# جلوگیری از لیست شدن دایرکتوری‌ها
Options -Indexes

# محدود کردن دسترسی به فایل‌های حساس
<FilesMatch “.(htaccess|htpasswd|ini|log|sh|sql)$”>
Order Allow,Deny
Deny from all
</FilesMatch>

نکات فنی:

  • بررسی conflict با افزونه‌ها
  • تغییرات htaccess بعد از هر آپدیت هسته وردپرس بررسی شود

تنظیم مجوزهای پوشه‌ها و فایل‌ها (File Permissions)

دستی:

  • پوشه‌ها (directories): 755
  • فایل‌ها (files): 644
  • wp-config.php: 600 یا 644

دستور برای لینوکس:

find /path/to/wordpress/ -type d -exec chmod 755 {} ;
find /path/to/wordpress/ -type f -exec chmod 644 {} ;
chmod 600 /path/to/wordpress/wp-config.php

افزونه پیشنهادی:

نکات فنی:

  • از 777 شدیداً خودداری شود
  • بررسی مالکیت فایل‌ها (chown) مطابق با کاربر وب سرور (www-data یا apache)

جلوگیری از دسترسی به پوشه‌های حساس

پوشه‌های: /wp-admin/, /wp-includes/, /wp-content/uploads/

تنظیمات دستی: 

ایجاد فایل .htaccess در /uploads/ با محتوای:

# جلوگیری از اجرای فایل‌های PHP در uploads
<Files *.php>
deny from all
</Files>

نکات فنی:

  • بررسی اینکه uploads برای تصاویر، pdf، و فایل‌های غیر اجرایی باز باشد
  • جلوگیری از upload فایل‌های مخرب
  • جلوگیری از اجرای PHP در uploads و تغییرات داخلی وردپرس امنیت را بسیار افزایش می‌دهد

غیر فعال کردن ویرایش فایل‌ها از داخل وردپرس

به صورت دستی:

  • در wp-config.php اضافه شود
define('DISALLOW_FILE_EDIT', true);

نکات فنی:

  • جلوگیری از تغییر فایل‌ها توسط مدیران یا هکرها بعد از ورود غیرمجاز

محدود کردن دسترسی به آی‌پی و سرور

تذکر : این تنظیم بسیار حساس می باشد. در صورتی که دانش فنی دارید انجام شود.

Restrict wp-admin by IP در htaccess یا Nginx

#Apache

<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Files>

نکات فنی:

  • IP استاتیک یا محدوده مطمئن
  • دسترسی برای تیم پشتیبانی از VPN یا IP whitelist

مرحله ۵: امنیت پایگاه داده و هاردنینگ وردپرس

تغییر پیش‌فرض پیشوند جداول وردپرس

پیش‌فرض: wp_ ← هدف رایج حملات SQL Injection

RENAME TABLE wp_posts TO newprefix_posts;

نکات فنی:

  • تمامی جداول و ارتباطات باید هماهنگ شوند
  • بررسی و بروزرسانی wp-config.php:
$table_prefix = 'newprefix_';

مدیریت دسترسی کاربران دیتابیس

بررسی کاربران دیتابیس با دستور SQL:

SELECT User, Host FROM mysql.user;
  • محدود کردن دسترسی‌ها به DB وردپرس فقط به کاربر اصلی (SELECT, INSERT, UPDATE, DELETE)
  • حذف یا غیرفعال کردن کاربران بلااستفاده

نکات فنی:

  • هر کاربر وردپرس نباید دسترسی root داشته باشد
  • استفاده از پسورد قوی برای کاربر دیتابیس ضروری است

بکاپ دیتابیس

افزونه‌ها:

  • UpdraftPlus – بکاپ خودکار دیتابیس
  • WP-DB-Backup – بکاپ دستی دیتابیس

تنظیمات دستی:

  • دستور لینوکس
mysqldump -u username -p database_name > backup.sql

نکات فنی:

  • بکاپ‌ها در فضای خارج از سرور (S3, Google Drive) ذخیره شود
  • تست بکاپ: restore کردن روی staging یا local

هاردنینگ (Hardening) وردپرس (مرحله پیشرفته)

در فایل wp-config.php

define('WP_DEBUG', false); // جلوگیری از نمایش خطاها به هکر
define('DISALLOW_FILE_EDIT', true); // غیر فعال کردن ویرایش فایل‌ها
define('AUTOSAVE_INTERVAL', 300); // افزایش فاصله autosave
define('WP_POST_REVISIONS', 5); // محدود کردن نسخه‌های نوشته‌ها

در فایل htaccess

غیر فعال کردن دسترسی مستقیم به فایل‌های xmlrpc.php و readme.html

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
<Files readme.html>
Order Deny,Allow
Deny from all
</Files>

نکات فنی:

  • غیر فعال کردن XML-RPC اگر نیاز نیست (هدف حملات brute-force و DDoS)
  • تنظیم limit برای Post Size و Upload Size برای جلوگیری از آپلود فایل‌های بزرگ مخرب

بررسی و مانیتورینگ دیتابیس

افزونه‌ها:

دستی :

  • بررسی لاگ MySQL برای ورودی‌های مشکوک
  • اجرای query های مشکوک بررسی شود

مرحله ۶: امنیت پوسته‌ها و افزونه‌ها

حذف افزونه‌ها و قالب‌های غیر فعال

تنظیمات دستی:

  • وردپرس ← Plugins ← Installed Plugins ← حذف افزونه‌های غیر فعال
  • Appearance ← Themes ← حذف قالب‌های غیر فعال

نکات فنی:

  • افزونه‌ها و قالب‌های غیر فعال می‌توانند در صورت وجود آسیب‌پذیری، دروازه حمله باشند
  • حتی قالب یا افزونه‌ای که غیر فعال است ممکن است فایل‌های اجرایی روی سرور داشته باشد
  • افزونه و یا قالب غیرفعال که در آینده قصد فعال سازی آن را دارید را نیز حتما آپدیت و به روز کنید.

آپدیت منظم هسته، افزونه و قالب

دستی:

  • Dashboard ← Updates ← بررسی و نصب آخرین نسخه‌ها
  • بررسی release notes برای آسیب‌پذیری‌های رفع شده

افزونه پیشنهادی:

  • Easy Updates Manager – کنترل آپدیت خودکار برای هسته، افزونه و قالب

نکات فنی:

  • سایت staging قبل از آپدیت سایت live تست شود
  • نسخه‌های قدیمی PHP ممکن است مانع آپدیت شوند

بررسی افزونه‌ها برای آسیب‌پذیری‌ها

دستی:

  • مرور سایت‌های vulnerability database مانند WPScan Vulnerability Database
  • بررسی CVEهای افزونه‌های نصب شده

افزونه پیشنهادی:

  • WPScan – اسکن امنیتی افزونه‌ها، قالب‌ها و هسته وردپرس
  • Wordfence – اسکن خودکار و گزارش آسیب‌پذیری‌ها

نکات فنی:

  • افزونه‌های با مشکل امنیتی باید فوراً حذف یا بروزرسانی شوند
  • افزونه‌های null یا کرک شده اصلاً استفاده نشود

محدود کردن دسترسی فایل‌های افزونه و قالب

دستی:

  • دسترسی‌های پوشه‌ها برای /wp-content/plugins/ و /wp-content/themes/: 755
  • دسترسی فایل‌ها: 644

نکات فنی:

  • جلوگیری از اجرای فایل‌های PHP در /uploads/
  • بررسی تغییرات غیر مجاز فایل‌ها با افزونه: iThemes Security → File Change Detection

پیکربندی امنیتی افزونه‌ها

افزونه Wordfence:

  • فعال کردن فایروال و اسکن بدافزار برای افزونه‌ها و قالب‌ها

افزونه iThemes Security:

  • File Change Detection ← بررسی تغییرات فایل‌های افزونه
  • Lockout بعد از تلاش‌های غیر مجاز ورود

مرحله ۷: مانیتورینگ، ضد بدافزار و فایروال

مانیتورینگ لاگ‌ها و فعالیت کاربران

دستی:

  • بررسی ورودها و فعالیت کاربران:
    • wp-admin → Users → Logged In Users
    • بررسی ورودهای مشکوک از آی‌پی‌های غیرمعمول
  • بررسی فایل wp-content/debug.log (در صورت فعال بودن WP_DEBUG_LOG)

افزونه پیشنهادی:

  • WP Activity Log – مانیتور تمام تغییرات، ورودها و فعالیت‌ها
  • iThemes Security – نمایش ورودهای مشکوک و logout خودکار

نکات فنی:

  • بررسی لاگ‌های سرور (Apache/Nginx) برای دسترسی‌های غیرمجاز
    تنظیم alert ایمیل برای ورودهای مشکوک

اعلان‌ها و هشدارها

فعال کردن هشدارهای ایمیل یا پیام فوری برای فعالیت‌های خطرناک:

  • ورود ناموفق بیش از حد مجاز
  • تغییر فایل‌های حساس
  • تغییر سطح دسترسی کاربران

افزونه پیشنهادی:

  • Wordfence – هشدار ایمیل برای ورودهای غیرمجاز و تغییر فایل‌ها
  • iThemes Security – ایمیل هشدار برای تغییر فایل و ورودهای مشکوک

ضد بدافزار و اسکن دوره‌ای

دستی:

  • بررسی فایل‌های مشکوک در /wp-content/uploads/ و هسته وردپرس
  • بررسی تغییرات غیرمجاز فایل‌ها

افزونه پیشنهادی:

  • Wordfence Security – اسکن بدافزار و فایل‌های هسته
  • MalCare Security – اسکن خودکار و پاکسازی بدافزار

نکات فنی:

  • اسکن منظم (مثلاً هفتگی)
  • بررسی فایل‌های جدید یا تغییر یافته در افزونه‌ها و قالب‌ها

فایروال (Web Application Firewall)

دستی:

  • محدود کردن دسترسی‌های غیرمجاز با htaccess/Nginx (IP restriction، rate limiting)

افزونه پیشنهادی:

  • Wordfence WAF – پیکربندی مرحله به مرحله فایروال
  • All In One WP Security & Firewall – فعال کردن Basic + Intermediate + Advanced Firewall

نکات فنی:

  • تنظیمات فایروال باید با CDN و caching سازگار باشد
  • بررسی false positiveها و whitelist آی‌پی‌های امن
  • محدود کردن دسترسی به wp-login.php و xmlrpc.php از IPهای مشخص

امنیت پیشرفته با مانیتورینگ و فایروال

  • مانیتورینگ real-time برای جلوگیری از:
    • Brute-force attacks
    • SQL Injection
  • Cross-Site Scripting (XSS)
  • بررسی تغییرات ناگهانی در فایل‌ها یا دیتابیس
  • هشدارهای فوری از طریق ایمیل یا Slack

مرحله ۸: بکاپ و بازیابی پیشرفته + تنظیمات نهایی امنیتی

بکاپ منظم و خودکار

دستی:

  • بکاپ کامل فایل‌ها و دیتابیس به صورت دوره‌ای (روزانه، هفتگی، ماهانه)
  • ذخیره بکاپ در محل امن خارج از سرور اصلی (Cloud: S3, Google Drive, Dropbox)
  • دستورات نمونه برای دیتابیس:
mysqldump -u dbuser -p dbname > /backup/db_backup_$(date +%F).sql

افزونه پیشنهادی:

  • UpdraftPlus – بکاپ خودکار فایل و دیتابیس، امکان restore مستقیم
  • BackupBuddy – بکاپ کامل + migration

تست و بازیابی بکاپ

بکاپ بدون تست قابل اعتماد نیست

دستی:

  • Restore بکاپ روی محیط staging یا local
  • بررسی کامل فایل‌ها، دیتابیس و عملکرد سایت

افزونه پیشنهادی:

  • UpdraftPlus → Restore test

نکات فنی:

  • مطمئن شوید تمامی لینک‌ها، تصاویر و پایگاه داده سالم هستند
  • رمزگذاری بکاپ برای جلوگیری از دسترسی غیرمجاز

تنظیمات نهایی امنیتی

Hardening اضافی:

  • غیر فعال کردن XML-RPC اگر نیاز نیست:
add_filter('xmlrpc_enabled', '__return_false');
  • غیر فعال کردن directory listing:
Options -Indexes
  • محدود کردن آپلود فایل‌ها و MIME type‌ها

کنترل دسترسی و session:

  • Logout خودکار پس از زمان مشخص inactivity
  • محدود کردن session فعال برای هر کاربر

 لایه‌های اضافی امنیتی پیشرفته

  • استفاده از CDN با WAF (Cloudflare, Sucuri) برای کاهش حملات DDoS
  • بررسی منظم نسخه PHP و آپدیت سرور
  • بررسی دسترسی‌ها و permission فایل‌ها بعد از هر آپدیت هسته، قالب یا افزونه
  • مانیتورینگ real-time با WP Activity Log یا افزونه‌های مشابه

مستندسازی

  • ثبت تمام اقدامات انجام شده در یک سند مرجع
  • تاریخ آخرین بکاپ و تست بازیابی
  • مستندسازی کاربران، نقش‌ها، افزونه‌های فعال و نسخه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 × پنج =