امنیت وردپرس
اقدامات اولیه امنیتی برای محافظت از وردپرس روی سرور اختصاصی یا اشتراکی
اگر وبسایت وردپرس خود را روی سرور اختصاصی یا پنلهایی مانند CWP مدیریت میکنید، امنیت باید اولین اولویت شما باشد. در این راهنما، مهمترین اقدامات امنیتی اولیه برای وردپرس را بررسی میکنیم؛ از تنظیم دسترسیها گرفته تا ایزولهسازی و مخفیسازی ساختار سایت برای جلوگیری از حملات.
استفاده از یوزر جداگانه برای هر سایت یا دامنه
یکی از اصول اولیه در امنیت وردپرس، ایجاد کاربر لینوکس مجزا برای هر هاست است. با این روش:
- فایلها و تنظیمات هر سایت جدا میمانند
- اگر یکی از سایتها دچار مشکل شود، بقیه سایتها آسیب نمیبینند
در پنلهایی مثل CWP این امکان بهسادگی فراهم است.
تعیین سطح دسترسی (Permission) صحیح برای فایلها و پوشهها
- دسترسی پوشهها:
755
- دسترسی فایلها:
644
- فایلهای حساس مانند
wp-config.php
: بهتر است600
یا640
باشد - مالک فایلها: همان یوزری باشد که سایت را مدیریت میکند
هر گونه دسترسی اشتباه میتواند زمینهساز نفوذ هکرها شود.
غیرفعالسازی اجرای PHP در مسیرهایی مثل Cache، Uploads و Includes
با استفاده از یک فایل .htaccess
در پوشههای حساس (مثلاً wp-content/uploads/
یا wp-content/cache/
) میتوان اجرای فایلهای PHP را غیرفعال کرد:
<FilesMatch "\.(php|php[0-9])$">
Order Allow,Deny
Deny from all
</FilesMatch>
مخفیسازی نسخه وردپرس
نمایش نسخه وردپرس، اطلاعات مهمی به مهاجم میدهد. برای پنهانسازی:
- حذف متا تگ generator از هدر
- حذف
ver=
از فایلهای CSS/JS با فیلتر درfunctions.php
مثال:
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
کنترل و مدیریت wp-cron.php
اجرا شدن خودکار wp-cron.php
در هر بار بازدید، هم باعث فشار روی سرور میشود، هم میتواند درگاه حمله باشد.
راهکار:
- غیرفعالسازی آن در
wp-config.php
:define('DISABLE_WP_CRON', true);
- اجرای زمانبندیشده با کرون واقعی در سرور (هر ۱۰ دقیقه):
*/10 * * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
جلوگیری از دسترسی به فایلهای حساس وردپرس
با اضافه کردن این دستورات به .htaccess
در ریشه وردپرس، میتوانید دسترسی به فایلهای خاص را مسدود کنید:
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
نصب و پیکربندی فایروال در سطح سرور
در محیطهایی مثل CWP میتوانید از CSF + LFD برای کنترل ترافیک ورودی و جلوگیری از حملات brute-force و اسکنهای مشکوک استفاده کنید. این ابزارها بهصورت real-time ترافیک را بررسی میکنند و IPهای مشکوک را بلاک میکنند.
استفاده از آنتیویروس برای اسکن فایلهای وردپرس
با نصب ابزارهایی مثل ClamAV یا ابزارهای گرافیکی در CWP میتوان فایلهای مخرب یا شلها را شناسایی و پاک کرد.
فعالسازی لاگ امنیتی (Audit Log)
ثبت فعالیتهای مدیریتی کاربران در وردپرس بسیار مهم است. با فعالسازی لاگ امنیتی:
- فعالیت کاربران قابل پیگیری است
- حملات داخلی یا تغییرات غیرمجاز به سرعت شناسایی میشوند
ابزار پیشنهادی: افزونه [AIOS – All In One Security]
مخفیسازی ساختار وردپرس از ابزارهایی مثل Wappalyzer
برای جلوگیری از شناسایی وردپرس توسط ابزارهایی مثل Wappalyzer:
- آدرس صفحه لاگین را تغییر دهید
- مسیرهای
wp-content
,wp-includes
,wp-admin
را با افزونههایی مثل WP Hide پنهان یا تغییر دهید - کلاسهای HTML پیشفرض وردپرس را حذف یا بازنویسی کنید
ایزولهسازی منابع PHP و دیتابیس
برای افزایش امنیت و عملکرد:
- برای هر هاست از PHP-FPM Pool جداگانه استفاده کنید
- هر سایت دیتابیس مستقل با یوزر محدود خودش داشته باشد
- منابع CPU و RAM را به صورت جداگانه برای هر سایت تنظیم کنید
مانیتورینگ تغییرات فایلها
مانیتورینگ بهمعنای بررسی تغییرات فایلهاست. اگر فایلی بدون دلیل یا توسط یک بدافزار تغییر کند، بلافاصله هشدار داده میشود.
افزونهها یا ابزارهایی مانند:
- Wordfence
- AIOS
- Tripwire (در سرور)
چکلیست امنیتی اولیه برای وردپرس
✅ استفاده از هاست و یوزر جداگانه
✅ تعیین پرمیشن صحیح فایلها
✅ حذف نسخه وردپرس از سورس
✅ غیرفعالسازی اجرای PHP در مسیرهای حساس
✅ محدود کردن دسترسی به فایلهای سیستمی
✅ پنهانسازی ساختار سایت از ابزارهای اسکن
✅ نصب فایروال و آنتیویروس در سرور
✅ فعالسازی audit-log برای پیگیری فعالیتها
✅ مانیتورینگ فایلها و جلوگیری از تزریق کد
✅ استفاده از کرون جاب واقعی به جای wp-cron.php
این لیست پایهایترین اقدامات امنیتی وردپرس برای سرورهای اختصاصی یا اشتراکی (مانند CWP) است. اجرای صحیح همین موارد، از بیش از ۹۰٪ حملات متداول جلوگیری میکند.