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

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

هکرها معمولا می خواهند از سرور هاست شما به منظور ارسال انبوه و اسپم ایمیل استفاده کنند یا اینکه یک وب سرور موقتی برای ذخیره سازی فایلهای غیر مجاز داشته باشند. اگر شما هک شوید باید آماده باشید تا هزینه های هاستتان سر به فلک بکشد!

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

تنظیم مقادیر ثابت وردپرس

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

مستندات زبان برنامه نویسی php مقادیر ثابت را اینگونه توصیف می کند:

“یک مقدار ثابت، مشخصه ای (اسمی) برای یک مقدار ساده است. همانطور که از نامش بر می آید، مقدار نمی تواند در طی فرآیند اجرای اسکریپت تغییر یابد.(به جز مقادیر ثابت جادویی که اساسا مقادیر ثابت نیستند.) یک مقدار ثابت به طور پیش فرض به حروف کوچک و بزرگ حساس است. بر طبق قرارداد موجود در زبان php مشخصه های ثابت همیشه با حروف بزرگ نوشته می شوند.”

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

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

همچنین مقادیر ثابت در تابع ()define که در مثال زیر نمایش داده شده است مورد استفاده قرار می گیرند.

define('NAME_OF_CONSTANT', value);

فایل wp-config.php قبل از لود فایلهایی که هسته وردپرس را بالا می آورند لود میشود. این امر به این معنی است که اگر شما مقدار ثابتی را در فایل wp-config.php تغییر دهید می توانید عملکرد و واکنش وردپرس را دچار تغییر کنید.می توانید با تغییر مقادیر برخی امکانات وردپرس را فعال یا غیرفعال کنید. مثلا در برخی موارد این امر با تغییر دادن false به true و برعکس انجام می گیرد.

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

/* That's all, stop editing! Happy blogging. */

هشدار: در موقع ضرورت

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

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

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

۱. تغییر کلیدهای امنیتی

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

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

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

مطلب مرتبط:  راهنمای جامع ویرایش فایل httaccess. به منظور افزایش امنیت سایت

می توانید ساخت کلیدهای امنیتی را خودکار کنید. با کلیک بر روی WordPress Security Key Generator می توانید کلیدهای جدیدی بسازید و سپس آنها را در فایل wp-config.php کپی و پیست کنید.

کلیدهای امنیتی شبیه کدهای درج شده در ذیل هستند:

define( 'AUTH_KEY', 't`DK%X:>xy|e-Z(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&Wb?pgn^p8(2@}IcnCa|' );
define( 'SECURE_AUTH_KEY', 'D&ovlU#|CvJ##uNq}bel+^MFtT&.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC[BOKXssj' );
define( 'LOGGED_IN_KEY', 'MGKi8Br(&{H*~&0s;{k0<S(O:+f#WM+q|npJ-+P;RDKT:~jrmgj#/-,[hOBk!ry^' );
define( 'NONCE_KEY', 'FIsAsXJKL5ZlQo)iD-pt??eUbdc{_Cn<4!d~yqz))&B D?AwK%)+)F2aNwI|siOe' );
define( 'AUTH_SALT', '7T-!^i!0,w)L#JK@pc2{8XE[DenYI^BVf{L:jvF,hf}zBf883td6D;Vcy8,S)-&G' );
define( 'SECURE_AUTH_SALT', 'I6`V|mDZq21-J|ihb u^q0F }F_NUcy`l,=obGtq*p#Ybe4a31R,r=|n#=]@]c #' );
define( 'LOGGED_IN_SALT', 'w<$4c$Hmd%/*]`Oom>(hdXW|0M=X={we6;Mpvtg+V.o<$|#_}qG(GaVDEsn,~*4i' );
define( 'NONCE_SALT', 'a|#h{c5|P &xWs4IZ20c2&%4!c(/uG}W:mAvy<I44`jAbup]t=]V<`}.py(wTP%%' );

۲. اجبار به استفاده از ssl

گواهی نامه ssl ارتباط بین سایت شما و مرورگر بازدیدکننده را امن می کند تا هکرها نتوانند اطلاعات شخصی را رمزگشایی کرده و به سرقت ببرند.اگر گواهی ssl خریداری و نصب نموده اید اجبار به استفاده از آن، می تواند امنیت سایت شما را افزایش دهد. قبلا در مقاله ای نحوه انتقال سایت از http به https آموزش داده شده است.

برای ایجاد اجبار به استفاده از گواهی ssl در زمان ورود به سایت و همچنین مشاهده داشبورد ادمین، کد زیر را به فایل wp-config.php بیفزایید.

define('FORCE_SSL_ADMIN', true);

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

۳. تغییر پیشوند دیتابیس

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

تغییر پیشوند پیش فرض به این امر کمک می کند و اگر تکه کد زیر را در فایل wp-config.php پیدا کنید می توانید _wp را به چیزی مثل _g79ds تغییر دهید یا حتی به چیزی که سختتر بتوان حدس زد.

$table_prefix = 'wp_';

۴. غیرفعال کردن امکان ویرایش قالب و پلاگینهای وردپرس

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

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

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

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

define('DISALLOW_FILE_EDIT', true);

۵. تغییر مکان فایل wp-config.php

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

شایان ذکر است که این کار همیشه امکان پذیر نیست مخصوصا اگر شما چنین تنظیماتی اعمال کرده باشید:

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

مطلب مرتبط:  امنیت در وردپرس - 32 کاری که می توانیم برای امنیت وردپرس انجام دهیم.

سایت شما یک زیر دایرکتوری است و شما در یک هاست اشتراکی حساب دارید یا اینکه شما در فایل ریشه هاست خود، چندین سایت نصب کرده و داشته باشید که هر کدام دایرکتوری خود را دارد. لذا ایجاد چنین تغییری، روی تمام این سایتها اعمال خواهد شد.

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

<?php
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . '../path/to/wp-config.php');

سایت شما باید به محض جایگزینی path/to/wp-config.php/ با آدرس اصلی آن بتواند عملکرد عادی خود را داشته باشد. توجه کنید که می بایست به جای path مسیر صحیحی که فایل را انتقال داده اید بنویسید.

۶. اجبار به استفاده از FTPS

اگر هاست شما پروتکل امن انتقال فایل (FTPS) را فعال کرده است می توانید استفاده از ftps را برای انتقال فایل اجباری کنید. این امر ارتباط بین سرور شما و مخاطب را رمزگزاری می کند و هکر نمی تواند ارتباط را رهگیری کرده و در نتیجه اطلاعات و فایلها را به سرقت ببرد.

برای ایجاد الزام به استفاده از ftps که زیر را بیفزایید:

define('FTP_SSL', true);

۷. اجبار به استفاده از SFTP

شبیه به مورد فوق بوده و اگر هاست شما پروتکل انتقال فایل (SSH (SFTP را به منظور امن سازی و رمزگزاری روی ارتباط شما در زمان استفاده از SSH و خط فرمان فعال کرده باشد، می توانید استفاده از آن را برای همه کاربران سایت خود اجباری کنید:

define('FS_METHOD', 'ssh2');

۸. خاموش کردن عیب یابی

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

اگر شما هم مثل من بلغم خونتان بالاست و فراموش کار هستید ایجاد یک یادآوری کننده می تواند به شما کمک کند.

برای خاموش کردن حالت عیب یابی می توانید گزینه true را به false تبدیل کنید. خط عیب یابی موجود در فایل wp-config.php به این شکل است:

define('WP_DEBUG', false);

ضمنا اگر فکر می کنید که هرگز به این کد نیاز نخواهید داشت می توانید کلا آنرا پاک کنید.

۹. غیرفعال سازی گزارش های خطا در فرونت اند سایت

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

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

define('WP_DEBUG_DISPLAY', false);

۱۰. فعالسازی آپدیت اتوماتیک

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

define('WP_AUTO_UPDATE_CORE', true);

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

راههای دیگری برای امن سازی سایت وردپرسی بلدید؟ با ما در میان بگذارید.

اگر مطلب فوق به‌درد‌بخور است، با بقیه به اشتراک بگذارید تا از آن استفاده کنند:

مطالب مرتبط