تکنیکهای زیر نیاز به دسترسی مدیر به وردپرس و سطح کافی از دانش فنی دارند. قبل از تلاش برای دنبال کردن این مراحل، همیشه از وبسایت خود پشتیبان تهیه کنید و زمانی را برای در نظر گرفتن تماس با یک متخصص امنیت وردپرس اختصاص دهید.
انتقال سایت وردپرس خود به 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 (مالک میتواند بخواند، بنویسد و اجرا کند؛ دیگران میتوانند بخوانند و اجرا کنند)