برای افزایش امنیت وردپرس، چندین لایه وجود داره که میتونی روشون کار کنی. از امنیت سطح سرور گرفته تا تنظیمات داخل خود وردپرس و افزونهها. برای دفاع درست، باید بدونی مهاجمها معمولاً از کجاها وارد میشن. توی وردپرس، بعضی از فایلها و مسیرها بیشترین احتمال نفوذ رو دارن.
۱. امنیت سرور و هاست
- از هاست معتبر استفاده کن: هاستینگهایی که فایروال، آنتیویروس، و مانیتورینگ فعال دارن.
- نسخه PHP بهروز باشه: نسخههای قدیمی PHP آسیبپذیر هستن.
- استفاده از HTTPS (SSL): حتماً گواهی SSL فعال باشه.
۲. امنیت وردپرس (Core)
- وردپرس، قالب و افزونهها رو آپدیت نگهدار.
- از قالب و افزونههای نالشده استفاده نکن: سوراخ امنیتی بزرگن!
- نام کاربری “admin” رو تغییر بده: یه نام کاربری غیرقابلحدس بذار.
- تعداد تلاش برای ورود رو محدود کن: با افزونهای مثل
Limit Login Attempts Reloaded
.
۳. افزونههای امنیتی پیشنهادی
هر کدوم از این افزونهها امکاناتی مثل اسکن بدافزار، فایروال، و لاگگیری رو دارن.
۴. مدیریت دسترسیها
- از احراز هویت دو مرحلهای (2FA) استفاده کن.
- دسترسیهای کاربران رو محدود کن: نقشهای کاربری رو درست انتخاب کن.
- wp-admin و wp-login.php رو محدود کن:
- با IP whitelist توی
.htaccess
- یا حتی تغییر مسیر ورود با افزونه مثل
WPS Hide Login
- با IP whitelist توی
۵. اقدامات سختافزاریتر
- غیرفعالکردن ویرایش فایلها از پنل ادمین:
define( 'DISALLOW_FILE_EDIT', true );
- تغییر پیشفرض پیشوند جداول دیتابیس از
wp_
به چیز دیگه. - پشتیبانگیری منظم با افزونههایی مثل UpdraftPlus یا All-in-One WP Migration
۶. بررسی امنیتی منظم
- هر از گاهی با ابزارهایی مثل:
- VirusTotal
- Google Safe Browsing
- یا سرویسهای آنلاین Sucuri، وبسایت رو چک کن.
خب حالا بریم ببینیم چجوری میتونیم راه های نفوذ ببندیم :
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)