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

۱. امنیت سرور و هاست

  • از هاست معتبر استفاده کن: هاستینگ‌هایی که فایروال، آنتی‌ویروس، و مانیتورینگ فعال دارن.
  • نسخه PHP به‌روز باشه: نسخه‌های قدیمی PHP آسیب‌پذیر هستن.
  • استفاده از HTTPS (SSL): حتماً گواهی SSL فعال باشه.

۲. امنیت وردپرس (Core)

  • وردپرس، قالب و افزونه‌ها رو آپدیت نگه‌دار.
  • از قالب و افزونه‌های نال‌شده استفاده نکن: سوراخ امنیتی بزرگن!
  • نام کاربری “admin” رو تغییر بده: یه نام کاربری غیرقابل‌حدس بذار.
  • تعداد تلاش برای ورود رو محدود کن: با افزونه‌ای مثل Limit Login Attempts Reloaded.

۳. افزونه‌های امنیتی پیشنهادی

هر کدوم از این افزونه‌ها امکاناتی مثل اسکن بدافزار، فایروال، و لاگ‌گیری رو دارن.

۴. مدیریت دسترسی‌ها

  • از احراز هویت دو مرحله‌ای (2FA) استفاده کن.
  • دسترسی‌های کاربران رو محدود کن: نقش‌های کاربری رو درست انتخاب کن.
  • wp-admin و wp-login.php رو محدود کن:
    • با IP whitelist توی .htaccess
    • یا حتی تغییر مسیر ورود با افزونه مثل WPS Hide Login

۵. اقدامات سخت‌افزاری‌تر

  • غیرفعال‌کردن ویرایش فایل‌ها از پنل ادمین: define( 'DISALLOW_FILE_EDIT', true );
  • تغییر پیش‌فرض پیشوند جداول دیتابیس از wp_ به چیز دیگه.
  • پشتیبان‌گیری منظم با افزونه‌هایی مثل UpdraftPlus یا All-in-One WP Migration

۶. بررسی امنیتی منظم

  • هر از گاهی با ابزارهایی مثل:

خب حالا بریم ببینیم چجوری میتونیم راه های نفوذ ببندیم :

wp-config.php

مهم‌ترین فایل کانفیگ سایتته و شامل:

  • اطلاعات دیتابیس (نام کاربری، پسورد، نام DB)
  • کلیدهای امنیتی
  • تنظیمات پیشرفته

راه‌های محافظت:

  • با .htaccess یا NGINX دسترسی بهش رو ببند: <Files wp-config.php> order allow,deny deny from all </Files>

wp-admin/ و wp-login.php

درگاه اصلی ورود به پنل ادمین هستن. بیشترین حملات Brute Force و Dictionary attack از این مسیرها انجام می‌شه.

محافظت:

  • تغییر مسیر ورود با افزونه‌هایی مثل WPS Hide Login
  • فعال‌کردن 2FA
  • محدود کردن IP با .htaccess یا فایروال هاست

wp-content/uploads/

مهاجم‌ها گاهی فایل‌های مخرب رو از طریق فرم‌ها آپلود می‌کنن (مثل shell یا اسکریپت PHP).

محافظت:

  • فقط اجازه آپلود تصاویر بده
  • با .htaccess اجرای اسکریپت در این مسیر رو ببند: <FilesMatch "\.(php|php5|phtml)$"> Order Deny,Allow Deny from all </FilesMatch>

افزونه‌ها (wp-content/plugins/)

خیلی از افزونه‌ها آسیب‌پذیری دارن، مخصوصاً اگر:

  • قدیمی باشن
  • نال‌شده (کراک‌شده) باشن

محافظت:

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

قالب‌ها (wp-content/themes/)

قالب‌های نال‌شده رایگان، گاهی با backdoor همراه هستن. حتی قالب‌های رسمی هم ممکنه حفره امنیتی داشته باشن.

محافظت:

  • از قالب‌هایی با پشتیبانی و آپدیت استفاده کن
  • فایل‌های داخل تم (مخصوصاً functions.php) رو زیرنظر داشته باش

xmlrpc.php

این فایل برای ارتباط بین اپلیکیشن‌های خارجی و وردپرس استفاده می‌شه، ولی در خیلی از موارد برای حملات Brute Force یا DDoS استفاده می‌شه.

محافظت:

  • اگه ازش استفاده نمی‌کنی، غیرفعالش کن: <Files xmlrpc.php> Order allow,deny Deny from all </Files>

.htaccess

اگر این فایل دستکاری بشه، می‌شه مسیرها، ریدایرکت‌ها و دسترسی‌ها رو کنترل کرد. یک فایل آلوده می‌تونه ریدایرکت کنه به سایت‌های مخرب.

محافظت:

  • فقط ادمین‌ها بهش دسترسی داشته باشن
  • اسکن مرتب با افزونه‌هایی مثل Wordfence یا iThemes Security

فایل‌هایی با قابلیت اجرای PHP در مسیرهای نامرتبط (مثلاً /uploads/malicious.php)

این روش کلاسیک تزریق فایل هست.

محافظت:

  • اجرای PHP در /uploads/ رو ببند
  • فرم‌های آپلود رو فیلتر کن (MIME type, extension)