امنیت وردپرس | بلاگ وب‌داده

ایمن‌سازی وردپرس با ویرایش فایل wp-config.php

فایل wp-config.php قلب پیکربندی وردپرس است؛ همان‌جا که اطلاعات دیتابیس و کلیدهای امنیتی نگهداری می‌شوند. در این راهنما گام‌به‌گام یاد می‌گیرید با چند تنظیم ساده در همین فایل، امنیت سایتتان را بالا ببرید.
امنیت وردپرس با wp-config.php یکی از کم‌هزینه‌ترین و مؤثرترین کارهایی است که برای سخت‌ترکردن مسیر مهاجم‌ها می‌توانید انجام دهید. با افزودن چند خط ثابت (constant) به این فایل، ویرایشگر فایل را می‌بندید، ورود را روی HTTPS اجبار می‌کنید و کلیدهای امنیتی را تازه می‌کنید؛ همه بدون نصب هیچ افزونه‌ای.
  • wp-config.php چیست: حساس‌ترین فایل وردپرس شامل اطلاعات دیتابیس، کلیدها و ثابت‌های پیکربندی.
  • مهم‌ترین تنظیم‌ها: DISALLOW_FILE_EDIT، FORCE_SSL_ADMIN، به‌روزرسانی کلیدها و نمک‌ها و کنترل حالت دیباگ.
  • محافظت از خود فایل: محدودکردن مجوز به 440 و مسدودکردن دسترسی مستقیم با .htaccess.
  • پیش‌نیاز حیاتی: قبل از هر تغییر، بکاپ کامل بگیرید؛ یک خطای کوچک می‌تواند سایت را موقتاً از کار بیندازد.
  • واقعیت صادقانه: این کارها «لایه مکمل» هستند، نه جایگزین به‌روزرسانی منظم و رمز عبور قوی.

در یک نگاه

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

امنیت وردپرس با wp-config.php چیست و چرا اهمیت دارد؟

فایل wp-config.php در ریشه نصب وردپرس قرار دارد و پلی است میان کدهای وردپرس و دیتابیس. اطلاعات اتصال به دیتابیس (نام، کاربر و رمز)، کلیدها و نمک‌های امنیتی، پیشوند جدول‌ها و ده‌ها ثابت پیکربندی همگی در همین فایل تعریف می‌شوند. به بیان ساده، اگر کسی به این فایل دسترسی بخواند، عملاً کلید خانه شما را در دست دارد.
به همین دلیل، هر تغییری که امنیت این فایل و مقادیر داخل آن را بهبود دهد، مستقیم روی امنیت کل سایت اثر می‌گذارد. مستندات رسمی وردپرس هم بخش جداگانه‌ای برای «ایمن‌سازی wp-config.php» دارد؛ از محدودکردن مجوز فایل گرفته تا افزودن ثابت‌هایی که رفتار مدیریتی سایت را قفل می‌کنند.

تشبیه کاربردی

فایل wp-config.php مثل تابلوی برق و گاوصندوق خانه در یک اتاق است. کارهای این مقاله دو دسته‌اند: اول «قفل‌کردن درِ همان اتاق» (مجوز فایل و مسدودکردن دسترسی مستقیم)، و دوم «تنظیم کلیدها و کلیدهای اصلی داخل تابلو» (ثابت‌های امنیتی). هر دو با هم، خطر را کم می‌کنند.

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

ثابت‌های امنیتی wp-config یک «لایه» هستند، نه سپر کامل. مهم‌ترین کار امنیتی همچنان به‌روز نگه‌داشتن هسته، قالب و افزونه‌ها و استفاده از رمز عبور قوی است. این مقاله را در کنار آن‌ها ببینید، نه به‌جای آن‌ها.
فایل wp-config.php در ریشه وردپرس و نمای کلی امنیت وردپرس با wp-config.php

این تنظیم‌ها دقیقاً از چه چیزی محافظت می‌کنند؟

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

۱) بستن ویرایشگر فایل

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

۲) اجبار اتصال امن

با FORCE_SSL_ADMIN ورود و پیشخوان فقط روی HTTPS باز می‌شوند تا رمز و کوکی نشست در مسیر شبکه شنود نشود. پیش‌نیاز آن نصب گواهی SSL معتبر است.

۳) تازه‌کردن کلیدها و نمک‌ها

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

۴) محافظت از خود فایل

محدودکردن مجوز فایل و مسدودکردن دسترسی مستقیم با .htaccess باعث می‌شود کسی نتواند محتوای wp-config را از طریق مرورگر بخواند.

ایمن‌سازی گام‌به‌گام wp-config.php

پیش از شروع: حتماً بکاپ بگیرید

قبل از هر تغییری، از فایل‌ها و دیتابیس بکاپ کامل بگیرید. یک ویرگول یا خط اشتباه در wp-config.php می‌تواند کل سایت را سفید کند. بهترین کار، ویرایش فایل از طریق مدیر فایل هاست (File Manager) و نگه‌داشتن یک نسخه پشتیبان از همان فایل است. برای بکاپ سریع می‌توانید بکاپ رایگان و اسنپ‌شات در هاست سی‌پنل را ببینید.

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

وردپرس هشت مقدار امنیتی دارد که کوکی‌های احراز هویت را امضا و رمزنگاری می‌کنند. مقادیر واقعی و تصادفی را از سرویس رسمی وردپرس بگیرید و جایگزین رشته‌های نمونه در فایل کنید:
<?php
/**
 * کلیدها و نمک‌های امنیتی (Authentication Unique Keys and Salts)
 * مقادیر واقعی را از https://api.wordpress.org/secret-key/1.1/salt/ بگیرید
 * و به‌جای رشته‌های نمونه زیر جایگزین کنید. هرگز این مقادیر را جایی منتشر نکنید.
 */
define( 'AUTH_KEY',         'مقدار-تصادفی-یکتا-اینجا' );
define( 'SECURE_AUTH_KEY',  'مقدار-تصادفی-یکتا-اینجا' );
define( 'LOGGED_IN_KEY',    'مقدار-تصادفی-یکتا-اینجا' );
define( 'NONCE_KEY',        'مقدار-تصادفی-یکتا-اینجا' );
define( 'AUTH_SALT',        'مقدار-تصادفی-یکتا-اینجا' );
define( 'SECURE_AUTH_SALT', 'مقدار-تصادفی-یکتا-اینجا' );
define( 'LOGGED_IN_SALT',   'مقدار-تصادفی-یکتا-اینجا' );
define( 'NONCE_SALT',       'مقدار-تصادفی-یکتا-اینجا' );

نکته درباره تغییر کلیدها

به‌محض جایگزینی این مقادیر، همه کاربران (از جمله خودتان) از سایت خارج می‌شوند و باید دوباره وارد شوند. این کاملاً طبیعی است. منابع تخصصی توصیه می‌کنند این کلیدها را «بی‌دلیل و مرتب» عوض نکنید؛ تغییرشان بیشتر زمانی معنی دارد که به نشت اطلاعات یا نفوذ مشکوک شده‌اید.

گام دوم: قفل‌کردن رفتار مدیریتی با چند ثابت

این ثابت‌ها ویرایشگر فایل را می‌بندند، ورود را روی HTTPS اجبار می‌کنند و نمایش خطاها را در محیط واقعی خاموش می‌کنند. آن‌ها را کمی بالاتر از خط «همین‌جا کدنویسی را متوقف کنید» در فایل قرار دهید:
<?php
// این خطوط را بالاتر از خط «/* همین‌جا کدنویسی را متوقف کنید */» در wp-config.php بگذارید.

// ۱) غیرفعال‌کردن ویرایشگر فایل قالب و افزونه در پیشخوان
define( 'DISALLOW_FILE_EDIT', true );

// ۲) اجبار HTTPS برای صفحه ورود و پیشخوان (نیازمند نصب SSL معتبر)
define( 'FORCE_SSL_ADMIN', true );

// ۳) در محیط واقعی، خطاها فقط لاگ شوند نه نمایش داده شوند
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );

// ۴) اختیاری و سخت‌گیرانه: قفل کامل نصب/به‌روزرسانی فایل‌ها
// هشدار: این خط آپدیت خودکار و نصب افزونه از پیشخوان را هم می‌بندد.
// define( 'DISALLOW_FILE_MODS', true );

درباره DISALLOW_FILE_MODS با احتیاط

خط آخر (که کامنت گذاشته‌ایم) سخت‌گیرانه‌ترین گزینه است و هرگونه نصب یا به‌روزرسانی فایل از پیشخوان — از جمله آپدیت خودکار — را می‌بندد. اگر سایت را دستی و منظم به‌روزرسانی می‌کنید فعالش کنید؛ در غیر این صورت ممکن است بدون خبر، آپدیت‌های امنیتی را از دست بدهید.
نمای ویرایش ثابت‌های امنیتی در فایل wp-config.php برای امنیت وردپرس با wp-config.php

گام سوم: مسدودکردن دسترسی مستقیم به فایل

روی سرورهای اپاچی و لایت‌اسپید (رایج در هاست‌های سی‌پنل)، می‌توانید با چند خط در فایل .htaccess جلوی خوانده‌شدن مستقیم wp-config.php از طریق مرورگر را بگیرید. این قطعه را در بالای فایل .htaccess قرار دهید:
# جلوگیری از دسترسی مستقیم به wp-config.php (این را در بالای فایل .htaccess بگذارید)
<Files "wp-config.php">
Require all denied
</Files>

گام چهارم: محدودکردن مجوز فایل

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

# بررسی مجوز فعلی فایل
ls -l wp-config.php

اگر بعد از تغییر مجوز سایت خطا داد

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

نقل‌قول از منبع رسمی وردپرس

مستندات رسمی هاردنینگ وردپرس درباره این فایل می‌گوید: «مطمئن شوید که فقط شما (و وب‌سرور) می‌توانید این فایل را بخوانید؛ این معمولاً یعنی مجوز 400 یا 440.» همین جمله ساده نشان می‌دهد که کنترل دسترسی به wp-config چقدر جدی گرفته می‌شود. منبع: developer.wordpress.org — Hardening WordPress

جدول مقایسه ثابت‌ها و تنظیم‌های wp-config

این جدول کار هر تنظیم، مزیت امنیتی و ریسک یا ناراحتی احتمالی آن را کنار هم می‌گذارد تا انتخاب برایتان ساده‌تر شود:
تنظیم / ثابتچه‌کار می‌کند؟مزیت امنیتیریسک یا ناراحتی
کلیدها و نمک‌هاامضا و رمزنگاری کوکی‌های ورودجعل نشست را سخت می‌کندبا تغییر، همه logout می‌شوند
DISALLOW_FILE_EDITبستن ویرایشگر قالب/افزونهکند‌کردن تزریق کد پس از نفوذکم؛ باید فایل‌ها را با FTP ویرایش کنید
FORCE_SSL_ADMINاجبار HTTPS برای پیشخوانجلوگیری از شنود رمز و کوکینیازمند نصب SSL معتبر
DISALLOW_FILE_MODSقفل کامل نصب/به‌روزرسانی فایلکاهش شدید سطح حملهآپدیت خودکار غیرفعال می‌شود
.htaccess (deny)مسدودکردن دسترسی مستقیم به فایلجلوگیری از خواندن wp-configفقط روی اپاچی/لایت‌اسپید
مجوز 440فقط‌خواندنی برای مالک و سرورکاهش خطر خوانده‌شدن فایلروی بعضی هاست‌ها باید 640 شود

جمع‌بندی جدول

اگر تازه‌کارید، از سه مورد کم‌ریسک شروع کنید: به‌روزرسانی کلیدها، DISALLOW_FILE_EDIT و مسدودکردن دسترسی با .htaccess. گزینه‌های سخت‌گیرانه‌تر مثل DISALLOW_FILE_MODS را فقط وقتی فعال کنید که روال به‌روزرسانی دستی و منظمی دارید.

میزبانی امن وردپرس در وب‌داده

بخش بزرگی از امنیت واقعی، پیش از هر ثابت نرم‌افزاری، به زیرساخت میزبانی برمی‌گردد: سروری که به‌روز نگه داشته می‌شود، نسخه‌های جدید PHP و پشتیبانی که در لحظه بحران کنارتان باشد. ما در وب‌داده تلاش کرده‌ایم اعمال این لایه‌های امنیتی را برایتان ساده‌تر کنیم:
✅ زیرساخت سرورهای نسل جدید HPE (Gen11 و Gen10) برای پایداری و سرعت بالا.
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در ویرایش امن wp-config، نسخه PHP و رفع مشکلات.
✅ مدیر فایل و کنترل‌پنل کامل برای گرفتن بکاپ و اعمال آسان همین تغییرات.

تجربه پشتیبانی وب‌داده

در تیم پشتیبانی وب‌داده بارها دیده‌ایم کاربری هنگام ویرایش دستی wp-config یک کاراکتر اشتباه گذاشته و سایتش سفید شده است. راه‌حل ما همیشه یکی است: چون قبلش از همان فایل نسخه پشتیبان گرفته شده، فایل سالم را از طریق File Manager بازمی‌گردانیم و در چند دقیقه سایت برمی‌گردد. همین یک عادت ساده — بکاپ پیش از ویرایش — تفاوت میان یک اصلاح چنددقیقه‌ای و یک بحران چندساعته است.
اگر به‌دنبال بستری مطمئن برای وردپرس هستید، می‌توانید هاست سی‌پنل وب‌داده را ببینید. برای آشنایی با اصول کلی ایمن‌سازی سرور هم مطلب روش‌های امن‌سازی سرور می‌تواند کمک‌کننده باشد.

معایب و محدودیت‌هایی که باید بدانید

صادقانه بگوییم، ویرایش wp-config چند محدودیت جدی دارد. نخست، خطای سینتکس (حتی یک ویرگول) می‌تواند کل سایت را موقتاً از کار بیندازد؛ به همین دلیل بکاپ و ویرایش از طریق مدیر فایل ضروری است. دوم، جابجایی فایل به یک سطح بالاتر از ریشه — که گاهی پیشنهاد می‌شود — طبق خود مستندات وردپرس محل بحث است و اگر بادقت انجام نشود می‌تواند آسیب‌پذیری جدید ایجاد کند؛ برای کاربر مبتدی توصیه نمی‌شود. سوم، ثابت DISALLOW_FILE_MODS اگر بی‌احتیاط فعال شود جلوی آپدیت‌های خودکار امنیتی را می‌گیرد. چهارم، این تنظیم‌ها «امنیت مکمل» هستند؛ اگر هسته و افزونه‌ها قدیمی بمانند، هیچ‌کدام آسیب‌پذیری موجود را نمی‌بندند.

پرسش‌های پرتکرار درباره ایمن‌سازی wp-config.php

جمع‌بندی و چک‌لیست امنیتی

دیدیم که با چند تغییر ساده در فایل wp-config.php می‌توانید امنیت وردپرس را چند پله بالا ببرید: به‌روزرسانی کلیدها و نمک‌ها، بستن ویرایشگر فایل، اجبار HTTPS، مسدودکردن دسترسی مستقیم و محدودکردن مجوز فایل. اما مهم‌ترین پیام این مقاله را فراموش نکنید: این‌ها لایه‌های مکمل‌اند و جای به‌روزرسانی منظم، رمز قوی و بکاپ را نمی‌گیرند.

چک‌لیست سریع wp-config

✅ اول از همه بکاپ کامل بگیرید.
✅ کلیدها و نمک‌ها را از سرویس رسمی وردپرس تازه کنید.
✅ ثابت DISALLOW_FILE_EDIT را اضافه کنید.
✅ در صورت داشتن SSL، FORCE_SSL_ADMIN را فعال کنید.
✅ نمایش خطاها را در محیط واقعی خاموش کنید (WP_DEBUG=false).
✅ دسترسی مستقیم به فایل را با .htaccess ببندید و مجوز را روی 440 بگذارید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
منابع: مستندات رسمی Hardening WordPress و Editing wp-config.php در developer.wordpress.org؛ و سرویس رسمی تولید کلید WordPress Secret-Key Service.
وب داده
وب داده

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

مقاله‌ها: 82
پاسخی بگذارید

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