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

انتقال سایت وردپرس خود به SSL/HTTPS

SSL (لایه سوکت‌های امن) داده‌های منتقل شده بین مرورگر کاربر و سرور وب شما را رمزگذاری می‌کند و امنیت سایت شما را افزایش می‌دهد.

دستورالعمل‌ها:

  • یک گواهی SSL از ارائه‌دهنده میزبانی خود خریداری کنید یا از یک گواهی رایگان استفاده کنید
  • گواهی را از طریق حساب میزبانی خود نصب و فعال کنید
  • آدرس URL وردپرس خود را با رفتن به تنظیمات > عمومی و به‌روزرسانی آدرس وردپرس (URL) و آدرس سایت (URL) از http:// به https:// به‌روز کنید
  • SSL را با افزودن کد زیر به فایل .htaccess خود اجباری کنید:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

تغییر URL صفحه ورود وردپرس

به طور پیش‌فرض، صفحات ورود وردپرس از طریق wp-login.php یا wp-admin به راحتی قابل دسترسی هستند. تغییر این می‌تواند به محافظت در برابر تلاش‌های ورود غیرمجاز کمک کند.

دستورالعمل‌ها:

  • فایل .htaccess را در دایرکتوری ریشه وردپرس خود ویرایش کنید و اضافه کنید:

RewriteRule ^mylogin$ https://%{SERVER_NAME}/wp-login.php?key=123&redirect_to=https://%{SERVER_NAME}/wp-admin [L]

  • به‌جای mylogin آدرس جدید صفحه ورود و به‌جای 123 یک رشته تصادفی وارد کنید.

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

نام کاربری پیش‌فرض “admin” هدف هکرها است، بنابراین بهتر است آن را تغییر دهید.

دستورالعمل‌ها:

  • با رفتن به کاربران > افزودن جدید، یک کاربر جدید در وردپرس ایجاد کنید.
  • به کاربر جدید نقش مدیر را اختصاص دهید.
  • از سیستم خارج شوید و با حساب مدیر جدید وارد شوید.
  • کاربر قدیمی “admin” را حذف کنید و تمام محتوا را به کاربر جدید نسبت دهید.

غیرفعال کردن ویرایش فایل

وردپرس به مدیران اجازه می‌دهد فایل‌های PHP افزونه‌ها و قالب‌ها را ویرایش کنند. غیرفعال کردن این ویژگی امنیت را افزایش می‌دهد.

دستورالعمل‌ها:

  • خط زیر را به فایل wp-config.php خود اضافه کنید:

define('DISALLOW_FILE_EDIT', true);

غیرفعال کردن اجرای فایل PHP در برخی از دایرکتوری‌های وردپرس

جلوگیری از اجرای PHP در دایرکتوری‌هایی مانند wp-content/uploads می‌تواند به جلوگیری از اجرای اسکریپت‌های مخرب کمک کند.

دستورالعمل‌ها:

  • یک فایل .htaccess در دایرکتوری‌ای که می‌خواهید محافظت کنید ایجاد کنید و اضافه کنید:

deny from all

تغییر پیشوند پایگاه داده پیش‌فرض وردپرس

پیشوند پایگاه داده پیش‌فرض wp_ به خوبی شناخته شده است، بنابراین تغییر آن می‌تواند به محافظت از پایگاه داده شما در برابر حملات تزریق SQL کمک کند.

دستورالعمل‌ها:

  • از پایگاه داده خود پشتیبان تهیه کنید.
  • به phpMyAdmin بروید، پایگاه داده خود را انتخاب کنید و زبانه “عملیات” را انتخاب کنید.
  • در قسمت “پیشوند جدول”، wp_ را به پیشوند جدید خود (مثلاً wpnew_) تغییر دهید و روی “برو” کلیک کنید.

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

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

دستورالعمل‌ها:

  • خط زیر را به فایل .htaccess خود اضافه کنید:

Options -Indexes

غیرفعال کردن XML-RPC در وردپرس

XML-RPC می‌تواند برای حملات نیروی بی‌رحمانه (brute force) مورد سوء استفاده قرار گیرد. غیرفعال کردن آن می‌تواند امنیت را افزایش دهد.

دستورالعمل‌ها:

  • کد زیر را به فایل .htaccess خود اضافه کنید:

# مسدود کردن درخواست‌های WordPress xmlrpc.php
order deny,allow
deny from all

خروج خودکار کاربران غیرفعال در وردپرس:

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

دستورالعمل‌ها:

  • این کد را به فایل functions.php قالب خود اضافه کنید:
add_action('wp_enqueue_scripts', 'idle_logout');
function idle_logout() {
    if (is_user_logged_in()) {
        wp_enqueue_script('idle_logout', '/path-to-your-script/idle-logout.js', array('jquery'), '1.0.0', true);
    }
}
  • سپس، یک فایل idle-logout.js با JavaScript برای ردیابی زمان غیرفعال و خروج کاربران ایجاد کنید.

پنهان کردن نسخه وردپرس

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

دستورالعمل‌ها:

  • خط زیر را به فایل functions.php قالب خود اضافه کنید:

remove_action('wp_head', 'wp_generator');

مسدود کردن هات‌لینکینگ

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

دستورالعمل‌ها:

  • کد زیر را به فایل .htaccess خود اضافه کنید:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

بررسی نقش‌های کاربری و تنظیم مجوزهای فایل

دسترسی به مناطق حساس را فقط به کسانی که نیاز دارند محدود کنید و مجوزهای فایل مناسب را برای دایرکتوری‌ها و فایل‌ها روی سرور خود تنظیم کنید. دسترسی به فایل‌ها و پوشه‌های حیاتی را محدود کنید.

فایل‌ها و دایرکتوری‌های وردپرس از یک کد عددی سه رقمی برای نمایش مجوزها استفاده می‌کنند. هر رقم مربوط به سطح مجوز خاصی است:

– 4: خواندن (r)
– 2: نوشتن (w)
– 1: اجرا (x)

مجوزهای توصیه شده برای فایل‌ها و دایرکتوری‌های مختلف وردپرس به شرح زیر است:

– فایل‌ها (مانند .php، .html): 644 (مالک می‌تواند بخواند و بنویسد؛ دیگران می‌توانند بخوانند)
– دایرکتوری‌ها: 755 (مالک می‌تواند بخواند، بنویسد و اجرا کند؛ دیگران می‌توانند بخوانند و اجرا کنند)
– wp-config.php (فایل پیکربندی مهم): 600 (مالک می‌تواند بخواند و بنویسد؛ دیگران هیچ دسترسی ندارند)
– .htaccess (پیکربندی سرور): 644 (مالک می‌تواند بخواند و بنویسد؛ دیگران می‌توانند بخوانند)
– دایرکتوری آپلود (مثلاً wp-content/uploads): 755 (مالک می‌تواند بخواند، بنویسد و اجرا کند؛ دیگران می‌توانند بخوانند و اجرا کنند)

آخرین به روز رسانی: 16 مهر 1403