چگونه فایل پیکربندی wp-config.php وردپرس را ایمن کنیم؟

چگونه فایل پیکربندی wp-config.php وردپرس را ایمن کنیم؟

از آنجا که وردپرس بیش از 40 درصد طراحی سایت را در دنیا از آن خود کرده است، در سلسله مقالاتی می خواهیم به امن سازی سایت وردپرسی بپردازیم. ایمن سازی فایل wp-config.php وردپرس یکی از راه های افزایش امنیت وردپرس شما است. این فایل یکی از مهم ترین فایل های وردپرس است و حاوی اطلاعات بسیار حساسی در مورد نصب وردپرس شما است، مانند کلیدهای امنیتی وردپرس و جزئیات اتصال پایگاه داده وردپرس و بسیاری از تنظیمات دیگر. مطمئناً نمی خواهید محتوای این فایل به دست افراد خرابکار بیفتد. انجام اقدامات برای محافظت از فایل wp-config.php وردپرس قطعا چیزی است که باید جدی بگیرید.

در این آموزش نحوه محافظت از این فایل پیکربندی مهم وردپرس و نحوه ذخیره اطلاعات حساس در فایل wp config.php را در جایی امن و غیرقابل دسترسی از طریق وب توضیح خواهیم داد.

هشدار!!!

لطفا قبل از ادامه مقاله حتما از وب سایت خود پشتیبان بگیرید. همچنین در صورتی که تخصص انجام تغییرات این فایل را ندارید از انجام تغییرات جددا خودداری کنید. انجام اشتباه این تغییرات باعث می شود تا وب سایت شما دچار آسیب جدی شده و از کار بیفتد یا از دسترس خارج شود.

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

در صورت نیاز، خدمات پشتیبانی ما را بررسی فرمایید.

چرا امنیت wp-config.php مهم است؟

فایل wp-config.php نقش مهمی در پیکربندی و عملکرد وب سایت وردپرس شما ایفا می کند .

این فایل حاوی اطلاعاتی است که به شما در ایجاد اتصال پایگاه داده کمک می کند. این فایل شامل تنظیمات MySQL از جمله نام پایگاه داده، نام کاربری پایگاه داده، رمز عبور پایگاه داده و نام میزبان پایگاه داده است. وردپرس برای اتصال به پایگاه داده MySQL مناسب از این چهار پارامتر مهم استفاده می کند.

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

آنها همچنین در احراز هویت، زمانی که شخصی سعی می کند به وب سایت شما دسترسی پیدا کند کمک می کنند. هنگامی که کاربر نام کاربری و رمز عبور خود را برای ورود ارسال کرد، وردپرس از salt های پیکربندی شده در فایل wp-config.php برای محاسبه مجدد هش ها و تعیین اینکه آیا کاربر باید اجازه دسترسی داشته باشد استفاده می کند.

این فایل دارای گزینه های پیکربندی برای اهداف مختلف دیگری مانند جابجایی افزونه ها، آپلودها یا پوشه wp-content است. همچنین می‌توانید از آن برای تعیین فاصله ذخیره خودکار و تعداد بازبینی‌هایی که وردپرس باید ذخیره کند، در صورت وجود، استفاده کنید.

نحوه دسترسی به فایل wp-config.php

فایل wp-config.php در ابتدا در بسته ای که برای نصب وردپرس دانلود می کنید وجود ندارد. در طول مراحل نصب ایجاد می شود.

هنگامی که شما در حال راه اندازی یک سایت وردپرس هستید، نصب کننده از شما می خواهد جزئیاتی مانند نام پایگاه داده، نام کاربری پایگاه داده، رمز عبور پایگاه داده، نام میزبان پایگاه داده و غیره را ارائه دهید. سپس وردپرس فایل wp-config.php را بر اساس داده هایی که وارد می کنید ایجاد می کند.

محل پیش فرض این فایل داخل دایرکتوری ریشه ای است که در آن وردپرس را نصب می کنید. شما به راحتی می توانید از طریق مدیر فایل در حساب سی پنل یا دایرکت ادمین خود یا از طریق یک سرویس گیرنده FTP به آن دسترسی داشته باشید. برای اتصال از طریق این روش باید از داشتن اعتبار FTP اطمینان حاصل کنید. راه دیگر دسترسی به فایل از طریق SSH است. قبل از دسترسی به فایل، باید مطمئن شوید که اعتبار ورود به سیستم SSH خود را دارید.

مگر اینکه وردپرس را در یک زیر شاخه نصب کرده باشید، فایل wp-config.php داخل پوشه ریشه وردپرس خواهد بود. به طور معمول، این پوشه public_html یا www است. برخی از میزبان های وب نیز ممکن است سرورهای خود را طوری تنظیم کنند که فایل wp-config.php را در یک سطح دایرکتوری بالاتر برای بهبود امنیت قرار دهند. اگر نمی توانید آن را در دایرکتوری ریشه پیدا کنید، مطمئن شوید که فایل را در دایرکتوری بالاتر بررسی کرده اید.

وردپرس قادر است فایل را به صورت خودکار بارگذاری کند اگر در دایرکتوری ریشه یا یک سطح بالاتر قرار داشته باشد. بعداً در آموزش در مورد این موضوع به تفصیل صحبت خواهیم کرد.

چگونه فایل wp-config.php را ویرایش کنیم؟

همانطور که در این آموزش جلوتر می رویم، ممکن است لازم باشد فایل wp-config.php  خود را دانلود کرده و پس از ایجاد تغییرات مربوطه آن را دوباره آپلود کنید. دانلود فایل همیشه ضروری نیست. همچنین می توانید پس از اتصال از طریق SSH و با استفاده از ویرایشگری مانند nano یا vim آن را مستقیماً ویرایش کنید.

شما به راحتی می توانید فایل را با استفاده از ویرایشگرهای متن ساده مانند Notepad باز و ویرایش کنید. با این حال، توصیه می‌کنیم از برخی برنامه‌های کاربردی‌تر مانند Notepad++ یا Visual Studio Code استفاده کنید، زیرا این ویرایشگرها قابلیت متمایز سازی کدها را ارائه می‌کنند. از آنجایی که فایل پیکربندی wp یک فایل php است، اگر از ویرایشگری استفاده می‌کنید که از قابلیت متمایز سازی کدها پشتیبانی می‌کند، ویرایش آن کمتر دچار خطا می‌شود.

امن سازی فایل wp-config.php

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

اکنون چهار تکنیک مختلف را مورد بحث قرار می دهیم که می توانید از آنها برای محافظت از این فایل مهم در برابر دسترسی غیرمجاز استفاده کنید.

با استفاده از htaccess.دسترسی به فایل wp-config.php را مسدود کنید

وردپرس معمولاً یک فایل .htaccess را به دایرکتوری نصب ریشه وب سایت شما اضافه می کند. این فایل می تواند عملکردهای زیادی مانند تغییر مسیر URL، مدیریت خطا، ذخیره سازی و فشرده سازی و کنترل دسترسی را انجام دهد.

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

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

هنگام تلاش برای محدود کردن دسترسی به فایل‌های wp-config.php با استفاده از دستورالعمل‌های htaccess ، دو نکته مهم را باید در نظر داشته باشید:

  1. فایل htaccess.و فایل wp-config.php باید در یک دایرکتوری باشند. فایل wp-config.php در دایرکتوری اصلی نصب وردپرس شما قرار دارد. بنابراین، شما باید یک فایل .htaccess جدید نیز در دایرکتوری ریشه ایجاد کنید، اگر از قبل وجود نداشته باشد.
  2. این احتمال وجود دارد که با نصب وردپرس شما یک فایل htaccess.تولید شده باشد. در این مورد، باید مطمئن شوید که دستورالعمل های فوق را در بلوک های # BEGIN WordPress و # End WordPress قرار ندهید. این به این دلیل است که قوانینی که در این بلوک ها قرار می دهید ممکن است در آینده بازنویسی شوند.

انتقال یا جابجایی فایل wp-config.php

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

قبل از ادامه، مطمئن شوید که یک نسخه پشتیبان از وب سایت وردپرس خود دارید. این قضیه را جدی بگیرید زیرا ما در برخی از فایل های اصلی تغییراتی ایجاد خواهیم کرد.

چگونه وردپرس فایل wp-config.php را پیدا می کند

اکنون مراحل بارگذاری فایل wp-config.php را بررسی خواهیم کرد. این موضوع کمک می کند تا با نحوه بارگذاری فایل ها در وردپرس آشنا شوید.

دایرکتوری ریشه حاوی دسته ای از فایل های اصلی وردپرس است. یکی از این فایل ها index.php است. این فایل index.php با فایل index.php تم نصب شده در وب سایت وردپرس شما متفاوت است.

تنها هدف فایل index.php بارگذاری فایل wp-blog-header.php با استفاده از خط زیر است:

require DIR .’/wp-blog-header.php’;

فایل wp-blog-header.php نیز در دایرکتوری ریشه قرار دارد. این فایل مسئول بارگذاری فایل wp-load.php است. این کار را در داخل یک بلوک if انجام می دهد که مقدار متغیر $wp_did_header را نیز تعیین می کند. مقدار واقعی به توابع و فیلترهای مختلف اجازه می دهد بدانند که وردپرس قبلاً هدرهایی را ارسال کرده است که در خطوط زیر نشان داده شده است:

 

if ( ! isset( $wp_did_header ) ) {

    $wp_did_header = true;

    // Load the WordPress library.

    require_once DIR .'/wp-load.php';

    // Set up the WordPress query.

    wp();

    // Load the theme template.

    require_once ABSPATH .WPINC .'/template-loader.php';

}

پس از بارگیری فایل wp-load.php، کد را برای بارگیری فایل wp-config.php اجرا می کند. در اینجا سه ​​بلوک برای رسیدگی به شرایط مختلف وجود دارد.

if ( file_exists( ABSPATH .'wp-config.php' ) ) {

  require_once ABSPATH .'wp-config.php';

} elseif ( @file_exists( dirname( ABSPATH ) .'/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) .'/wp-settings.php' ) ) {

require_once dirname( ABSPATH ) .'/wp-config.php';

} else {

  // More Code to initiate the setup process.

}

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

فرض کنید فایل در فهرست اصلی وجود نداشت. در این حالت، وردپرس به بلوک elseif  منتقل می‌شود که بررسی می‌کند که آیا فایل واقعاً یک سطح بالاتر قرار دارد یا در دایرکتوری والد. همچنین یک بررسی اضافی انجام می دهد تا ببیند آیا فایل wp-settings.php در دایرکتوری والد وجود دارد یا خیر. وجود یک فایل wp-settings.php در دایرکتوری ریشه نشان دهنده نصب تودرتو است.

اگر فایل wp-settings.php در دایرکتوری ریشه وجود نداشته باشد، وردپرس فایل wp-config.php  آن دایرکتوری را بارگیری می کند.

کد داخل این بلوک elseif  به شما این امکان را می دهد که به سادگی فایل wp-config.php  خود را از یک دایرکتوری بالا جابجا کرده و بارگذاری کنید بدون اینکه نگران ایجاد تغییر در کد باشید.

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

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

اطلاعات حساس را از فایل wp-config.php حذف کنید

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

گزینه دیگری که اطلاعات حساس را ایمن نگه می دارد می تواند صرفا شامل جابجایی اطلاعات حساس فایل wp-config.php باشد در حالی که اصل فایل در محل اصلی خود نگه داشته شود. همچنین می‌توانید اطلاعات حساس مانند جزئیات اتصال پایگاه داده و  salt‌ها و کلیدها را به مکان دیگری منتقل کنید.

راهنمای گام به گام امن سازی wp-config

بیایید مراحل را گام به گام طی کنیم:

  1. درست مانند تکنیک قبلی، با ایجاد یک دایرکتوری جدید در بالای پوشه های public_html یا www شروع کنید تا از دسترسی بازدیدکنندگان وب سایت دور بماند. اگر نام دایرکتوری نشان ندهد که از آن برای ذخیره اطلاعات فایل wp-config.php استفاده می کنید، عالی خواهد بود. به عنوان مثال، نام دایرکتوری مانند nkm-cache این ظن را ایجاد نمی کند که از آن برای ذخیره چیزی مهم استفاده می کنید.
  2. یک فایل جدید در دایرکتوری nkm-cache ایجاد کنید و به آن یک نام تصادفی مانند image-thumbs.php بدهید.
  3. تمام اطلاعات حساسی را که می خواهید پنهان کنید از wp-config.php کپی کنید و آن را در فایل جدیدی که ایجاد کرده اید قرار دهید.
  4. با قرار دادن خط زیر در داخل فایل wp-config.php، یک مرجع به فایل تازه ایجاد شده در داخل فایل wp-config.php اصلی خود اضافه کنید. دو خط اول فایل wp-config.php شما باید به این شکل باشد:
<?php
require_once ('/home/username/nkm-cache/image-thumbs.php');

مطمئن شوید که مسیر را مطابق با پیکربندی سرور خود تغییر داده اید.اگر مسیر با محل فایل مطابقت نداشته باشد، به احتمال زیاد با خطاهای سرور HTTP 500 مواجه خواهید شد .

اگر مطمئن نیستید که مسیر درست برای فایل چیست، می توانید از برنامه FTP یا مدیر فایل در کنترل پنل هایی مانند cPanel استفاده کنید.اسکرین شات زیر را در نظر بگیرید:

مسیر کنار آیکون خانه، یعنی /home/username/ دایرکتوری ریشه شماست. دایرکتوری پررنگ دایرکتوری انتخاب شده فعلی است. همه اینها را به همراه نام فایل با استفاده از اسلش رو به جلو به هم بپیوندید و مسیری را که باید در فایل wp-config.php تهیه کنید را دریافت کنید. در این مورد خاص، دایرکتوری انتخاب شده فعلی nkm-cache است، فایل تصویری image-thumbs.php است.بنابراین، مسیر کامل به صورت زیر خواهد بود:

/home/username/nkm-cache/image-thumbs.php

مجوزهای فایل مناسب را انتخاب کنید

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

یکی از مواردی که ارزش توجه دارد، به روز رسانی مجوزهای تمام فایل ها و دایرکتوری هایی است که در آن اطلاعات حساس را ذخیره می کنید. به عنوان مثال، اگر یک فایل جدید برای ذخیره داده های حساس از فایل wp-config.php ایجاد کرده اید، مطمئن شوید که فایل جدید دارای مجوز 644 است.

حواستان به پشتیبان گیری باشد

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

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

همچنین ممکن است بخواهید از مانیتور تغییرات فایل وب سایت برای حفظ برگه ها در فایل های وردپرس و تغییرات پوشه استفاده کنید.

نتیجه گیری نهایی

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

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

در صورتی که به مباحث امنیت در وردپرس علاقمند هستید، مقاله تنظیمات salt در وردپرس را مطالعه فرمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اشتراک گذاری مطلب:
جستجو کردن