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

این تنظیمها دقیقاً از چه چیزی محافظت میکنند؟
۱) بستن ویرایشگر فایل
DISALLOW_FILE_EDIT ویرایشگر قالب و افزونه در پیشخوان بسته میشود. اگر مهاجمی به یک حساب مدیر دست پیدا کند، دیگر نمیتواند سریع کد مخرب را از داشبورد تزریق کند.۲) اجبار اتصال امن
FORCE_SSL_ADMIN ورود و پیشخوان فقط روی HTTPS باز میشوند تا رمز و کوکی نشست در مسیر شبکه شنود نشود. پیشنیاز آن نصب گواهی SSL معتبر است.۳) تازهکردن کلیدها و نمکها
۴) محافظت از خود فایل
ایمنسازی گامبهگام wp-config.php
پیش از شروع: حتماً بکاپ بگیرید
گام اول: بهروزرسانی کلیدها و نمکهای امنیتی
<?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', 'مقدار-تصادفی-یکتا-اینجا' );PHPنکته درباره تغییر کلیدها
گام دوم: قفلکردن رفتار مدیریتی با چند ثابت
<?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 );PHPدرباره DISALLOW_FILE_MODS با احتیاط

گام سوم: مسدودکردن دسترسی مستقیم به فایل
.htaccess جلوی خواندهشدن مستقیم wp-config.php از طریق مرورگر را بگیرید. این قطعه را در بالای فایل .htaccess قرار دهید:# جلوگیری از دسترسی مستقیم به wp-config.php (این را در بالای فایل .htaccess بگذارید)
<Files "wp-config.php">
Require all denied
</Files>Apacheگام چهارم: محدودکردن مجوز فایل
# محدودکردن مجوز فایل wp-config.php به حالت فقطخواندنی برای مالک و وبسرور
# طبق توصیه رسمی وردپرس مقدار 440 یا 400 مناسب است.
chmod 440 wp-config.php
# بررسی مجوز فعلی فایل
ls -l wp-config.phpBashاگر بعد از تغییر مجوز سایت خطا داد
نقلقول از منبع رسمی وردپرس
جدول مقایسه ثابتها و تنظیمهای wp-config
| تنظیم / ثابت | چهکار میکند؟ | مزیت امنیتی | ریسک یا ناراحتی |
|---|---|---|---|
| کلیدها و نمکها | امضا و رمزنگاری کوکیهای ورود | جعل نشست را سخت میکند | با تغییر، همه logout میشوند |
| DISALLOW_FILE_EDIT | بستن ویرایشگر قالب/افزونه | کندکردن تزریق کد پس از نفوذ | کم؛ باید فایلها را با FTP ویرایش کنید |
| FORCE_SSL_ADMIN | اجبار HTTPS برای پیشخوان | جلوگیری از شنود رمز و کوکی | نیازمند نصب SSL معتبر |
| DISALLOW_FILE_MODS | قفل کامل نصب/بهروزرسانی فایل | کاهش شدید سطح حمله | آپدیت خودکار غیرفعال میشود |
| .htaccess (deny) | مسدودکردن دسترسی مستقیم به فایل | جلوگیری از خواندن wp-config | فقط روی اپاچی/لایتاسپید |
| مجوز 440 | فقطخواندنی برای مالک و سرور | کاهش خطر خواندهشدن فایل | روی بعضی هاستها باید 640 شود |
جمعبندی جدول
میزبانی امن وردپرس در وبداده
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در ویرایش امن wp-config، نسخه PHP و رفع مشکلات.
✅ مدیر فایل و کنترلپنل کامل برای گرفتن بکاپ و اعمال آسان همین تغییرات.
تجربه پشتیبانی وبداده
معایب و محدودیتهایی که باید بدانید
پرسشهای پرتکرار درباره ایمنسازی wp-config.php
فایل wp-config.php را از کجا پیدا کنم؟
این فایل در ریشه (پوشه اصلی) نصب وردپرس، معمولاً همان پوشهای که wp-content و wp-includes در آن هستند، قرار دارد. از طریق مدیر فایل هاست (File Manager) یا با اتصال FTP میتوانید به آن دسترسی داشته باشید. اگر پوشه public_html دارید، معمولاً همانجاست.
قبل از ویرایش حتماً باید بکاپ بگیرم؟
بله، این مهمترین توصیه است. یک خطای کوچک در این فایل میتواند سایت را سفید کند. قبل از هر تغییر یک نسخه از خود فایل و ترجیحاً یک بکاپ کامل بگیرید تا در صورت مشکل بتوانید فوری بازگردانید.
آیا این تنظیمها سایت را کاملاً امن میکنند؟
خیر. اینها لایههای مکمل هستند و سطح حمله را کم میکنند، اما جایگزین بهروزرسانی منظم هسته و افزونهها، رمز عبور قوی، احراز هویت دومرحلهای و بکاپ نیستند. امنیت یعنی کاهش ریسک، نه حذف کامل آن.
بعد از تغییر کلیدها چرا از سایت خارج شدم؟
کاملاً طبیعی است. کلیدها و نمکها کوکیهای ورود را امضا میکنند؛ وقتی عوضشان کنید، کوکیهای قبلی بیاعتبار میشوند و همه کاربران باید دوباره وارد شوند. کافی است دوباره لاگین کنید.
ثابتها را دقیقاً کجای فایل قرار دهم؟
ثابتهای امنیتی را کمی بالاتر از خطی که نوشته «/* همینجا دیگر ویرایش نکنید */ (That’s all, stop editing!)» بگذارید. اگر بعد از آن خط بگذارید ممکن است اعمال نشوند.
FORCE_SSL_ADMIN را فعال کردم اما سایت باز نمیشود؛ چرا؟
این ثابت فقط زمانی درست کار میکند که گواهی SSL معتبر روی دامنه نصب باشد. اگر SSL ندارید یا درست تنظیم نشده، ممکن است حلقه ریدایرکت یا خطای دسترسی ببینید. ابتدا SSL را نصب و فعال کنید، سپس این ثابت را روشن کنید.
تفاوت DISALLOW_FILE_EDIT و DISALLOW_FILE_MODS چیست؟
اولی فقط ویرایشگر فایل قالب و افزونه در پیشخوان را میبندد و کمریسک است. دومی سختگیرانهتر است و نصب و بهروزرسانی فایلها (از جمله آپدیت خودکار) را هم میبندد. برای بیشتر سایتها فقط DISALLOW_FILE_EDIT کافی است.
آیا جابجایی wp-config به یک پوشه بالاتر توصیه میشود؟
این کار امکانپذیر است و وردپرس یک دایرکتوری بالاتر را هم بررسی میکند، اما خود مستندات رسمی میگویند مزیت امنیتی آن محل بحث است و اگر بادقت انجام نشود ممکن است آسیبپذیری ایجاد کند. برای کاربر مبتدی، تمرکز روی مجوز فایل و .htaccess عملیتر و کمخطرتر است.
جمعبندی و چکلیست امنیتی
چکلیست سریع wp-config
✅ کلیدها و نمکها را از سرویس رسمی وردپرس تازه کنید.
✅ ثابت DISALLOW_FILE_EDIT را اضافه کنید.
✅ در صورت داشتن SSL، FORCE_SSL_ADMIN را فعال کنید.
✅ نمایش خطاها را در محیط واقعی خاموش کنید (WP_DEBUG=false).
✅ دسترسی مستقیم به فایل را با .htaccess ببندید و مجوز را روی 440 بگذارید.



