ویرگول
ورودثبت نام
معین علی پور
معین علی پورنوشتن به طعم قهوه ...
معین علی پور
معین علی پور
خواندن ۴ دقیقه·۵ ماه پیش

راهنمای فنی امنیت وردپرس: امن‌سازی فایل‌های حیاتی و مقابله با حملات Brute Force

مقدمه

بالا بردن سطح امنیت وردپرس، یک دغدغه همیشگی برای مدیران سایت‌هاست. در این راهنمای فنی، به بررسی روش‌های پایه‌ای و در عین حال مؤثری می‌پردازیم که به شما کمک می‌کند بدون نیاز به نصب افزونه‌های متعدد، لایه‌های دفاعی سایت خود را تقویت کنید. در ادامه، نحوه امن‌سازی فایل‌های wp-config.php و .htaccess و همچنین روش‌های جلوگیری از حملات Brute Force را تشریح خواهیم کرد.

بخش اول: پیکربندی امنیتی فایل‌های اصلی

دو فایل wp-config.php و .htaccess نقش کلیدی در عملکرد و امنیت سایت وردپرسی دارند. پیکربندی صحیح این دو، می‌تواند از بروز بسیاری از مشکلات امنیتی جلوگیری کند.

مورد ۱: امن‌سازی فایل wp-config.php

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

۱. جابجایی فایل wp-config.php

وردپرس این قابلیت را دارد که فایل wp-config.php را از یک پوشه بالاتر نسبت به محل نصب خود بخواند. انتقال این فایل به خارج از پوشه ریشه (مانند public_html)، دسترسی مستقیم به آن را از طریق وب دشوارتر می‌سازد. برای این کار، از طریق File Manager هاست خود، فایل را به دایرکتوری بالاتر منتقل کنید.

۲. تنظیم مجوزهای دسترسی (File Permissions)

سطح دسترسی این فایل باید تا حد امکان محدود باشد. مجوز 400 یا 440، که فقط به سرور اجازه خواندن فایل را می‌دهد، گزینه‌ای مناسب است. این کار را می‌توانید از طریق بخش Change Permissions در File Manager انجام دهید.

۳. استفاده از کلیدهای امنیتی (Security Keys)

کلیدهای امنیتی وردپرس برای رمزنگاری اطلاعات ذخیره شده در کوکی‌های کاربران به کار می‌روند. توصیه می‌شود این کلیدها را به صورت دوره‌ای تعویض کنید. برای این منظور، از طریق مولد رسمی کلید وردپرس، مجموعه‌ی جدیدی از کلیدها را تولید کرده و جایگزین مقادیر قبلی در فایل wp-config.php نمایید.

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

برای جلوگیری از ویرایش فایل‌های قالب و افزونه از طریق پیشخوان وردپرس (که در صورت نفوذ هکر به پنل ادمین خطرناک است)، کد زیر را به فایل wp-config.php اضافه کنید:

PHP

define('DISALLOW_FILE_EDIT', true);

مورد ۲: استفاده از فایل .htaccess برای افزایش امنیت

فایل .htaccess یک فایل پیکربندی برای سرورهای وب آپاچی است که امکان تعریف قوانین امنیتی مختلفی را فراهم می‌کند.

۱. محافظت از فایل wp-config.php

برای مسدودسازی هرگونه تلاش برای دسترسی به فایل wp-config.php از طریق مرورگر، کد زیر را در فایل .htaccess اصلی سایت قرار دهید:

Apache

<files wp-config.php>
order allow,deny
deny from all
</files>

۲. غیرفعال‌سازی امکان لیست کردن محتوای دایرکتوری‌ها

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

Apache

Options -Indexes

۳. جلوگیری از اجرای اسکریپت در پوشه آپلود

پوشه wp-content/uploads محل بارگذاری فایل‌های رسانه‌ای است. برای جلوگیری از اجرای فایل‌های PHP مخرب در این مسیر، یک فایل .htaccess جدید در داخل این پوشه ساخته و قطعه کد زیر را در آن قرار دهید:

Apache

<Files *.php>
deny from all
</Files>

بخش دوم: روش‌های جلوگیری از حملات Brute Force

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

روش ۱: افزودن یک لایه احراز هویت سرور (htpasswd)

این روش یک پنجره ورود ثانویه، قبل از نمایش صفحه لاگین وردپرس، ایجاد می‌کند که توسط سرور مدیریت می‌شود و ربات‌ها قادر به عبور از آن نیستند. برای فعال‌سازی آن، می‌توانید از بخش Directory Privacy در کنترل پنل هاست خود (مانند cPanel) برای پوشه wp-admin یک رمز عبور جدید تعریف کنید.

روش ۲: محدودسازی دسترسی به صفحه ورود بر اساس IP

اگر از آدرس IP ثابت استفاده می‌کنید، می‌توانید دسترسی به صفحه wp-login.php را فقط به IP خود محدود کنید. این کار با افزودن کد زیر به فایل .htaccess اصلی امکان‌پذیر است. آدرس YOUR_IP_ADDRESS را با IP واقعی خود جایگزین کنید.

Apache

<Files wp-login.php>
order deny,allow
deny from all
allow from YOUR_IP_ADDRESS
</Files>

توجه: این روش برای کاربرانی با IP داینامیک مناسب نیست.

روش ۳: تغییر نشانی اینترنتی صفحه ورود (روش پیشرفته)

این روش شامل تغییر آدرس wp-login.php به یک آدرس دلخواه از طریق افزودن کد به فایل functions.php قالب است. به دلیل حساسیت این روش و احتمال بروز خطا در صورت عدم اجرای صحیح، انجام آن نیازمند دانش فنی و تهیه نسخه پشتیبان است.

کد زیر یک نمونه برای انجام این کار است (عبارت my-new-login را با آدرس دلخواه خود جایگزین کنید):

PHP

add_filter('login_url', function() { return site_url('/my-new-login', 'login'); }, 10, 3);

add_action('init', function() {
    if (strpos($_SERVER['REQUEST_URI'], 'my-new-login') === false && is_user_logged_in() === false) {
        if (basename($_SERVER['PHP_SELF']) == 'wp-login.php') {
            wp_redirect(home_url('/my-new-login'));
            exit;
        }
    }
});

پس از افزودن کد، باید یک بار از طریق پیشخوان وردپرس به بخش تنظیمات > پیوندهای یکتا مراجعه کرده و روی دکمه "ذخیره تغییرات" کلیک کنید.

حرف آخر

با پیاده‌سازی تکنیک‌های شرح داده شده در این مقاله، یک لایه دفاعی مستحکم و ضروری به سایت وردپرسی خود اضافه کرده‌اید. امن‌سازی فایل‌های پیکربندی اصلی و محافظت از صفحه ورود، اقداماتی پایه‌ای هستند که تأثیر قابل توجهی بر کاهش آسیب‌پذیری‌های رایج دارند. امنیت یک فرآیند مداوم است و توجه به این جزئیات فنی، گامی مهم در جهت حفاظت از دارایی دیجیتال شما محسوب می‌شود.

brute forceامنیت وردپرسسئوهک و امنیترمز عبور
۱
۲
معین علی پور
معین علی پور
نوشتن به طعم قهوه ...
شاید از این پست‌ها خوشتان بیاید