افزایش امنیت وردپرس در سال 2024: سلام رایا وردپرسی عزیز😘 حتماً می دونی که امنیت یکی از مهمترین مسائل توی دنیای دیجیتال امروزه. با افزایش تعداد هکرها و حملات سایبری، نیاز به افزایش امنیت وردپرس بیشتر از همیشه حس میشه. توی این مقاله قراره بهت راهکارهای مختلفی رو معرفی کنم که به کمک اونا بتونی امنیت وبسایتت رو تقویت کنی. پس بیا با هم یک سفر جذاب به دنیای امنیت وردپرس داشته باشیم😁
🛡️چرا امنیت وردپرس اهمیت داره؟
وردپرس یه سیستم مدیریت محتوا خیلی محبوبیه. همین محبوبیت باعث میشه که هکرها بیشتر روش تمرکز داشته باشن و نقاط ضعفش رو شناسایی و بهش حمله کنن. حالا تصور کن کلی زحمت کشیدی، محتوا تولید کردی، سئو کار کردی و یهو سایتت هک بشه! همه زحمتات به باد میره. پس بهتره از همون اول کار رو درست انجام بدی و امنیت سایت وردپرسی ات رو ارتقا بدی. هر چند امنیت🛡️ چیز 100 درصدی نیس اما میشه تا حدود زیادی این امنیت رو از حالت پیش فرض و فعلی ببری بالاتر و به حالت ایده آل برسونی.
اگه میخای بدونی چطوری امنیت سایتو بیشتر کنی منو با نگاه قشنگت تا پایان این پست همراهی کن.
📌راهکارهای افزایش امنیت وردپرس در سال 2024
خب، اگر بخوای امنیت وردپرست رو تو سال 2024 بیشتر کنی، چند تا نکته مهم هست که باید بهش توجه کنی:
✨ فیلم و سریال های جدید رو از اینجا دانلود کن✨ کلیک کن AD
بهروزرسانی منظم قالب و افزونه ها:
همیشه وردپرس و افزونههای سایتتو بهروز نگهدار. این کار به رفع باگها و حفرههای امنیتی کمک میکنه.
وردپرس مثل هر نرمافزار دیگهای نیاز به بهروزرسانی داره. هر بار که نسخه جدیدی از وردپرس میاد، معمولاً شامل بهبودهای امنیتی، رفع باگها و حتی ویژگیهای جدیده.
حالا، ممکنه بگی: “خب، من الان سایتم به خوبی کار میکنه، چرا باید بهروز کنم؟” این جمله رو یادت باشه: هر چیزی که خوب کار میکنه، ممکنه فردا مشکلساز بشه! با گذشت زمان، هکرها و مهاجمها هم یاد میگیرن و تکنیکهای جدیدی برای نفوذ به سایتها پیدا میکنن. اگر تو سایتت بهروز نباشه، احتمال اینکه آسیبپذیر باشی، خیلی بیشتره.
حالا چطور میتونی بهروزرسانی رو راحتتر انجام بدی بهت میگم:
- فعالسازی بهروزرسانیهای خودکار: در وردپرس میتونی بهروزرسانیهای خودکار رو فعال کنی تا دیگه نگرانی در مورد این قضیه نداشته باشی. اینطوری، هر وقت که نسخه جدیدی بیاد، بهطور خودکار نصب میشه.
- چک کردن افزونهها و تمها: همیشه به یاد داشته باش که افزونهها و تمهای نصبشدهات هم باید بهروز باشن. بسیاری از مشکلات امنیتی از همینجا شروع میشه. پس هر بار که وردپرس رو بهروز میکنی، حتماً افزونهها و تمها رو هم بررسی کن.
- پشتیبانگیری قبل از بهروزرسانی: قبل از اینکه هر نوع بهروزرسانی رو انجام بدی، بهتره از سایتت بکاپ بگیری. اینطوری اگه مشکلی پیش اومد، میتونی به حالت قبلی برگردی و هیچ دادهای رو از دست ندی.
- مطالعه چنجلاگها: وقتی بهروزرسانی میکنی، چنجلاگها رو هم بررسی کن. این لیست نشون میده که چه تغییراتی اعمال شده و اگر نکته خاصی وجود داشت، میتونی قبل از بهروزرسانی بهش توجه کنی.
با رعایت این نکات، میتونی مطمئن بشی که سایتت همیشه در اوج امنیت و کارایی قرار داره. بهروزرسانی نه تنها سایت رو امنتر میکنه، بلکه به بهبود تجربه کاربری هم کمک میکنه. پس هر وقت یادش افتادی، یه نگاهی به بهروزرسانیها بنداز و این کار رو انجام بده!
برای فعال کردن بروزرسانی خودکار در وردپرس، میتونی از یک قطعه کد ساده php توی فایل functions.php
قالب سایتت استفاده کنی. این کد بهروزرسانی خودکار وردپرس، افزونهها و قالبها رو فعال میکنه:
// فعال کردن بروزرسانی خودکار هسته وردپرس
add_filter( 'auto_update_core', '__return_true' );
// فعال کردن بروزرسانی خودکار افزونهها
add_filter( 'auto_update_plugin', '__return_true' );
// فعال کردن بروزرسانی خودکار قالبها
add_filter( 'auto_update_theme', '__return_true' );
این کد رو توی فایل functions.php
قالب سایتت اضافه کن. با این کار، وردپرس به صورت خودکار بروزرسانیهای هسته، افزونهها و قالبها رو انجام میده، بدون اینکه نیازی به مداخله دستی داشته باشی.
نکته مهم💀همیشه قبل از اعمال این تغییرات، یک بکاپ از سایتت بگیر تا در صورت بروز مشکل، بتونی به حالت قبل برگردی.
🔑استفاده از پسوردهای قوی:
خب، وقتی صحبت از پسورد میشه، باید خیلی جدی بگیریش! پسورد ساده و ضعیف مثل این میمونه که کلید خونت رو روی در بذاری و بگی: “هر کی میخواد بیاد تو!” پس، اولین قدم برای امنیت سایتت اینه که یه پسورد قوی و پیچیده داشته باشی.
چطور یه پسورد قوی بسازیم؟
- ترکیب حروف و عدد و نمادها: مثلاً “123456” یا “password” رو بذار کنار! یه پسورد خوب باید ترکیبی از حروف بزرگ و کوچک، اعداد و نمادهایی مثل
@
,#
,!
باشه. مثلاً یه چیزی مثل “R@yaWP2024!” که هم حروف داره، هم عدد، هم نماد. - استفاده از پسورد طولانی: یه پسورد قوی باید حداقل ۱۲ کاراکتر باشه. هرچی طولانیتر، بهتر. اینجوری هک کردنش خیلی سختتر میشه.
- استفاده از ابزارهای مدیریت پسورد: میدونم، ساختن و به خاطر سپردن اینجور پسوردها سخته! واسه همین بهتره از ابزارهایی مثل LastPass یا 1Password استفاده کنی. اینجوری هم پسوردهای پیچیده میسازی، هم لازم نیست نگران فراموش کردنشون باشی.
- پسوردهای متفاوت برای هر سایت: اشتباه بزرگیه که از یه پسورد توی چند تا سایت استفاده کنی. اگه یه هکر به یکی از پسوردات دسترسی پیدا کنه، به همه جا میتونه بره! پس هر جا یه پسورد جداگانه بذار.
- تغییر دورهای پسورد: بهتره هر چند وقت یهبار پسوردتو عوض کنی، حتی اگه هیچ نشونهای از مشکل نداشتی. این کار امنیتت رو چند برابر میکنه.
وقتی از یه پسورد قوی استفاده میکنی، احتمال اینکه کسی بتونه با روشهایی مثل بروتفورس (که طی اون هکرها صدها یا هزاران پسورد رو امتحان میکنن تا پسوردتو حدس بزنن) وارد بشه، به شدت کم میشه. حالا فرض کن پسوردت فقط “123456” باشه، خیلی سریع میتونن اون رو کشف کنن و وارد سایتت بشن. ولی اگه پسوردت یه چیزی مثل “X2#g7B!4Pq” باشه، هک کردنش براشون خیلی سخته!
فعال کردن تایید هویت دو مرحله ای برای ورود به سایت
ببین، فعال کردن تایید هویت دو مرحله ای برای ورود به سایت یه راه عالی برای اینه که امنیت سایتت رو بالا ببری. اینطوری اگه کسی پسورد رو هم داشته باشه نمیتونه وارد بشه، بلکه باید یه مرحله دیگه هم رد کنه و باید کد تاییدی که به گوشی ارسال میشه رو هم وارد کنه تا بتونه داخل پنل لاگین انجام بده.
چطوری کار میکنه؟
فرض کن یه هکری پسوردت رو حدس زد یا از یه جایی به دست آورد. حالا اگه ورود دو مرحلهای فعال باشه، بعد از وارد کردن پسورد باید یه کد تأییدی هم وارد کنه که اون کد فقط به موبایل یا ایمیل خودت ارسال میشه. این یعنی حتی اگه طرف پسوردتو داشته باشه، بازم نمیتونه وارد سایتت بشه چون اون کد دوم رو نداره.
چطور دو مرحلهای رو فعال کنیم؟
برای فعال کردن این قابلیت توی وردپرس، میتونی از افزونههایی مثل Google Authenticator یا Two Factor Authentication استفاده کنی. کافیه افزونه رو نصب کنی و تنظیماتش رو انجام بدی.
- نصب افزونه: اول از همه افزونه Google Authenticator رو از بخش افزونههای وردپرس نصب کن.
- تنظیمات افزونه: بعد از نصب، میری توی تنظیمات و برای هر کاربری که میخوای این قابلیت فعال باشه، یه QR کد میده که با اپلیکیشن موبایلت (مثلاً Google Authenticator) اسکن میکنی.
- دریافت کد تأییدی: هر بار که میخوای وارد بشی، بعد از پسورد، باید یه کد ۶ رقمی که توی اپلیکیشن Google Authenticator ساخته میشه رو وارد کنی.
چرا مهمه؟
ورود دو مرحلهای باعث میشه که حتی اگه یه هکر یا مهاجم پسوردت رو هم پیدا کنه، بدون داشتن اون کد دوم نتونه وارد سایتت بشه. این یعنی یه لایه امنیتی اضافه که خیلی وقتها میتونه جون سایتت رو نجات بده!
❌محدود کردن تعداد تلاشها برای ورود
خب، بریم سراغ محدود کردن تعداد تلاشها برای ورود به سایت، که خیلی مهمه. فرض کن یه هکر میخواد پسوردتو حدس بزنه؛ این کار رو با یه روش به اسم بروتفورس انجام میده. یعنی میاد یه عالمه پسورد رو پشت سر هم امتحان میکنه تا بالاخره درستشو پیدا کنه. حالا، اگه بیای و تعداد تلاشهای ورود رو محدود کنی، دیگه نمیتونه همینجوری پشت سر هم پسورد بزنه.
چطور این کار رو انجام بدیم؟
با یه افزونه ساده به راحتی میتونی جلوی این حملات رو بگیری. افزونههایی مثل Limit Login Attempts Reloaded یا WP Limit Login Attempts برای همین کار ساخته شدن. این افزونهها بهت اجازه میدن تعیین کنی که چند بار کاربر میتونه پسورد اشتباه وارد کنه، بعد از اون اگه اشتباه وارد کرد، حسابش برای یه مدت قفل میشه.
روش کار:
- نصب افزونه: اول از همه میری توی بخش افزونهها و یکی از افزونههای مربوط به محدود کردن تلاشهای ورود رو نصب میکنی.
- تنظیمات افزونه: بعد از نصب، میری توی تنظیمات افزونه و مشخص میکنی که کاربر چند بار میتونه پسورد اشتباه بزنه. مثلاً میتونی بذاری بعد از ۳ بار اشتباه وارد کردن، حساب کاربر برای ۱۰ دقیقه قفل بشه. یا اگه هکر باز تلاش کرد، هر دفعه این زمان بیشتر میشه.
- نمایش پیغام به کاربر: وقتی تعداد تلاشها تموم بشه، یه پیغام به کاربر نشون داده میشه که میگه “برو یه آبی به صورتت بزن، بعد بیا!” و نمیتونه دوباره امتحان کنه تا زمانی که محدودیت تموم بشه.
توجه! اگه نمیخای از افزونه استفاده کنی: برای محدود کردن تعداد تلاشهای ورود به وردپرس و قفل کردن حساب کاربر بعد از ۳ تلاش اشتباه به مدت ۱۰ دقیقه، میتونی از کد زیر توی فایل
functions.php
قالب سایتت استفاده کنی. این کد یه راه ساده و کارآمده که بدون نیاز به افزونه خاصی میتونی پیادهسازی کنی.function custom_limit_login_attempts() { // شروع سشنها if (!session_id()) { session_start(); } // گرفتن آدرس IP کاربر $ip = $_SERVER['REMOTE_ADDR']; // تنظیم تعداد تلاشهای مجاز $max_attempts = 3; // تنظیم مدت زمان قفل (به ثانیه - 10 دقیقه) $lockout_time = 10 * 60; // 10 دقیقه // چک کردن اینکه آیا قبلاً تلاش اشتباه انجام شده یا نه if (isset($_SESSION['login_attempts'][$ip])) { $attempts = $_SESSION['login_attempts'][$ip]['attempts']; $last_attempt_time = $_SESSION['login_attempts'][$ip]['last_attempt_time']; // اگر کاربر قفل شده باشه if (time() - $last_attempt_time < $lockout_time) { wp_die('شما به دلیل تلاشهای ناموفق برای ورود، به مدت 10 دقیقه قفل شدهاید. لطفاً بعداً دوباره امتحان کنید.'); } } else { // اگر کاربر هنوز تلاشی انجام نداده باشه $attempts = 0; } // اگر تعداد تلاشها از حد مجاز گذشت if ($attempts >= $max_attempts) { $_SESSION['login_attempts'][$ip]['last_attempt_time'] = time(); wp_die('شما به دلیل تلاشهای ناموفق برای ورود، به مدت 10 دقیقه قفل شدهاید. لطفاً بعداً دوباره امتحان کنید.'); } } add_action('wp_login_failed', 'custom_limit_login_attempts'); // افزایش تعداد تلاشهای ناموفق function custom_track_login_attempts() { if (!session_id()) { session_start(); } $ip = $_SERVER['REMOTE_ADDR']; // اگه از قبل تعداد تلاشها رو ثبت نکردیم، مقداردهی اولیه کنیم if (!isset($_SESSION['login_attempts'][$ip])) { $_SESSION['login_attempts'][$ip] = [ 'attempts' => 0, 'last_attempt_time' => time() ]; } // افزایش تعداد تلاشها $_SESSION['login_attempts'][$ip]['attempts']++; } add_action('wp_login_failed', 'custom_track_login_attempts'); // بازنشانی تعداد تلاشهای اشتباه در صورت ورود موفقیتآمیز function custom_reset_login_attempts($user_login, $user) { if (!session_id()) { session_start(); } $ip = $_SERVER['REMOTE_ADDR']; if (isset($_SESSION['login_attempts'][$ip])) { unset($_SESSION['login_attempts'][$ip]); // پاک کردن رکورد تلاشها } } add_action('wp_login', 'custom_reset_login_attempts', 10, 2);
کد بالا به سادگی کاربر رو بعد از چند تلاش ناموفق برای مدتی قفل میکنه و باعث میشه که هکرها نتونن تعداد زیادی پسورد رو پشت سر هم امتحان کنن.
چرا اینکار مهمه؟
این روش به شدت از حملات بروتفورس جلوگیری میکنه، چون هکرها دیگه نمیتونن به راحتی یه عالمه پسورد رو پشت سر هم امتحان کنن. حتی اگه سیستم قفل بشه، مجبورن صبر کنن و این صبر کردنها باعث میشه که کارشون سخت و طولانی بشه.
یه ترفند اضافه:
اگه بخوای یه لایه امنیتی بیشتری اضافه کنی، میتونی یه هشدار ایمیل هم تنظیم کنی. یعنی هر وقت کسی تعداد تلاشهای ورودش از حد مجاز گذشت، یه ایمیل بهت بیاد و تو رو باخبر کنه که یه نفر مشکوک داره سعی میکنه وارد سایتت بشه.
با این روش ساده و استفاده از افزونهها، میتونی جلوی حملات بروتفورس رو بگیری و خیالت از بابت امنیت سایتت راحتتر بشه.
غیرفعال کردن XML-RPC
یکی از راههایی که به هکرها در هک سایت میتونه کمک کنه، XML-RPC هست. این قابلیت توی وردپرس به طور پیشفرض فعاله و به کاربر اجازه میده از راه دور به سایت دسترسی داشته باشه. اما اگه این ویژگی رو لازم نداری، بهتره که غیرفعالش کنی، چون میتونه به عنوان یه نقطه ضعف امنیتی مورد استفاده قرار بگیره.
XML-RPC چیه و چرا باید غیرفعالش کنیم؟
XML-RPC یه رابط کاربریه که به برنامههای خارجی (مثلاً اپلیکیشن موبایل وردپرس یا سرویسهای دیگه) اجازه میده با سایتت ارتباط برقرار کنن و کارهایی مثل انتشار پستها یا مدیریت سایت رو انجام بدن. حالا مشکل اینجاست که همین ویژگی میتونه توسط هکرها هم برای حملات بروتفورس (تلاشهای پیدرپی برای حدس پسورد) یا حملات DDoS استفاده بشه. با این روش، هکرها بدون اینکه از مرورگر استفاده کنن، مستقیماً به سرورت فشار میارن.
چرا غیرفعالش کنیم بهتره واسمون؟
اگه واقعاً به این قابلیت نیازی نداری، غیرفعال کردنش میتونه یه راه ساده و مؤثر برای کاهش نقاط ضعف امنیتی سایتت باشه. به خصوص اگه از اپلیکیشنهای موبایلی وردپرس یا APIهای خارجی استفاده نمیکنی.
چطور XML-RPC رو غیرفعال کنیم؟
برای غیرفعال کردن XML-RPC میتونی از کد زیر توی فایل functions.php
قالب سایتت استفاده کنی. این کد جلوی دسترسی به این قابلیت رو میگیره:
// غیرفعال کردن XML-RPC
add_filter('xmlrpc_enabled', '__return_false');
این کد ساده به وردپرس میگه که قابلیت XML-RPC رو غیرفعال کنه. یعنی دیگه هکرها یا هر کسی که بخواد از این روش وارد بشه، دسترسی نخواهد داشت.
تغییر آدرس صفحه لاگین وردپرس
یکی از کارهای ساده ولی خیلی مؤثری که میتونی برای افزایش امنیت سایت وردپرست انجام بدی، تغییر آدرس صفحه لاگینه. به صورت پیشفرض آدرس صفحه ورود به وردپرس همیشه yourwebsite.com/wp-login.php
یا yourwebsite.com/wp-admin
هست. این یعنی هکرها به راحتی میدونن که باید کجا برن تا شروع کنن به حملات بروتفورس (یعنی سعی کنن پسورد رو حدس بزنن و پشت سر هم امتحان کنن).
خب، حالا اگه بیای و آدرس صفحه ورود رو تغییر بدی، دیگه پیدا کردنش برای هکرها خیلی سختتر میشه. یه جورایی مثل اینه که در ورودی خونت رو از جلوی خونه ببری پشت حیاط؛ کسی که بخواد بیاد دزدی، اول باید در رو پیدا کنه!
چرا تغییر آدرس ورود مهمه؟
خب، همونطور که گفتم، هکرها معمولاً آدرس ورود به وردپرس رو میدونن، پس راحت میتونن سعی کنن به سایتت وارد بشن. وقتی آدرس رو عوض میکنی:
- هکرها گیج میشن: دیگه نمیدونن کجا باید برن تا صفحه لاگین سایتت رو پیدا کنن.
- کمتر حمله میکنی: وقتی آدرس ورود عوض بشه، حملات بروتفورس خیلی کمتر میشه، چون اصلاً نمیتونن صفحه لاگین رو پیدا کنن که بخوان پسورد وارد کنن.
- افزایش امنیت: با این کار یه لایه امنیتی دیگه به سایتت اضافه میکنی.
اگه میخای بدونی چطوری میشه آدرس صفحه لاگین وردپرس رو تغییر بدی میتونی مقاله زیر رو بخونی
فعال کردن گواهینامه SSL برای دامنه سایت
برای اینکه امنیت سایت وردپرست رو بالا ببری، یکی از بهترین کارها اینه که گواهینامه SSL نصب کنی. حالا شاید بپرسی SSL یعنی چی؟ بزار برات توضیح بدم.
SSL چیه؟
SSL (Secure Socket Layer) یه پروتکل امنیتیه که ارتباطات بین مرورگر کاربر و سرور رو رمزنگاری میکنه. یعنی اطلاعاتی که بین کاربر و سایت رد و بدل میشه، از جمله اطلاعات حساس مثل پسوردها و شمارههای کارت بانکی، به شکل رمز شده ارسال میشه. اینجوری هیچ کسی نمیتونه به راحتی به اطلاعات خصوصی دسترسی پیدا کنه.
چرا باید SSL نصب کنیم؟
- امنیت بیشتر: با نصب SSL، یه لایه امنیتی اضافه به سایتت اضافه میکنی که به کاربران حس امنیت بیشتری میده. وقتی کاربر وارد سایتت میشه و میبینه که آدرس سایت با
https://
شروع میشه، حس خوبی پیدا میکنه. - جلوگیری از هک: وقتی اطلاعات رمزنگاری بشه، هکرها نمیتونن به راحتی بهشون دسترسی پیدا کنن. این یعنی امنیت اطلاعات کاربران بیشتر میشه و خطر هک کمتر میشه.
- بهبود SEO: گوگل به سایتهایی که SSL دارن نمره بهتری میده. یعنی نصب SSL میتونه به بهبود رتبه سایتت در نتایج جستجو کمک کنه. پس به نوعی، یه تیر و دو نشان زدی!
- اعتماد کاربران: وقتی کاربران میبینن که سایتت SSL داره، بیشتر بهت اعتماد میکنن. بهخصوص اگه فروشگاه آنلاین داری، این اعتماد برای جذب مشتری خیلی مهمه.
غیرفعال کردن ویرایش فایل ها از طریق پیشخوان
اگر هکری با هر روشی به پنل مدیریت سایتت وارد بشه به راحتی میتونه از طریق ویرایش فایل در پیشخوان وردپرس هر کدی رو اجرا کنه. باید امکان ویرایش فایلو از پیشخوان وردپرس غیرفعالش کنی میگی چطوری بهت میگم:
چرا باید ویرایش فایلها رو غیرفعال کنیم؟
- جلوگیری از نفوذ: وقتی کسی به داشبورد وردپرس دسترسی داشته باشه، میتونه به راحتی به بخش ویرایش فایلها بره و کدهای سایت رو تغییر بده. این یعنی اگر کسی به حساب کاربری تو دسترسی پیدا کنه، میتونه سایتت رو هک کنه یا بهش آسیب بزنه. با غیرفعال کردن این امکان، یه لایه امنیتی به سایتت اضافه میشه.
- کاهش ریسک اشتباه: حتی اگر خودت هم قصد تغییر کدی رو داشته باشی، ممکنه اشتباهی کد رو خراب کنی و سایتت به مشکل بخوره. غیرفعال کردن ویرایش فایلها باعث میشه که از این اشتباهات جلوگیری کنی.
چطور ویرایش فایلها رو غیرفعال کنیم؟
برای غیرفعال کردن ویرایش فایلها، میتونی به راحتی از فایل wp-config.php
استفاده کنی. این فایل یکی از مهمترین فایلهای وردپرسه و معمولاً توی دایرکتوری ریشه سایتت قرار داره. مراحلش اینطوریه:
- ورود به هاست: ابتدا باید به پنل مدیریت هاستت وارد بشی. این پنل معمولاً cPanel یا Plesk یا هم دایرکت ادمینه.
- رفتن به File Manager: بعد از ورود به پنل، به بخش File Manager برو و دایرکتوری ریشه سایتت رو پیدا کن.
- پیدا کردن فایل wp-config.php: در دایرکتوری ریشه، فایل
wp-config.php
رو پیدا کن. روی این فایل راست کلیک کن و گزینه Edit رو انتخاب کن. - اضافه کردن کد: به انتهای فایل
wp-config.php
برو و این کد رو اضافه کن و ذخیره رو بزن:
define('DISALLOW_FILE_EDIT', true);
نتیجه:
حالا که این کد رو اضافه کردی، وقتی وارد داشبورد وردپرس بشی، دیگه گزینه ویرایشگر پرونده پوسته رو نمیبینی. این یعنی اگه کسی بخواد به کدهای سایتت دسترسی پیدا کنه، نمیتونه از طریق داشبورد این کار رو انجام بده.
جلوگیری از مرور دایرکتوری سایت توسط کاربران
برای جلوگیری از مرور دایرکتوری سایت توسط کاربران، یکی از کارهای ساده و مؤثر اینه که لیست دایرکتوری رو غیرفعال کنی. حالا بریم ببینیم این کار چیه و چطور میتونی این کار رو انجام بدی.
لیست دایرکتوری یعنی چی؟
وقتی کسی آدرس یک دایرکتوری رو توی سایتت وارد میکنه و تو هیچ فایل index (مثل index.php یا index.html) توی اون دایرکتوری نداشته باشی، سرور به طور پیشفرض لیست تمام فایلها و پوشهها رو نشون میده. این یعنی هر کسی میتونه ببینه توی دایرکتوریها چه چیزهایی هست و این میتونه به خطر امنیتی تبدیل بشه.
چرا باید این کار رو انجام بدی؟
- محافظت از اطلاعات: با غیرفعال کردن مرور دایرکتوری، اطلاعات حساس یا فایلهای مهمی که نمیخوای کسی بهشون دسترسی پیدا کنه، در امان میمونه.
- کاهش ریسک هک: هر چی اطلاعات کمتری درباره ساختار سایتت در دسترس باشه، احتمال اینکه مهاجمها بتونن به راحتی نقاط ضعف رو پیدا کنن، کمتر میشه.
چطور میتونی این کار رو انجام بدی؟
برای غیرفعال کردن لیست دایرکتوری، باید یه کد ساده به فایل .htaccess
سایتت اضافه کنی. این فایل معمولاً در دایرکتوری ریشه سایتت قرار داره. مراحلش خیلی سادهست:
- ورود به هاست: اول به پنل مدیریت هاستت (مثل cPanel) وارد شو.
- رفتن به File Manager: به بخش File Manager برو و دایرکتوری ریشه سایتت رو پیدا کن.
- پیدا کردن فایل htaccess: فایل
.htaccess
رو پیدا کن. اگر این فایل رو نداری، میتونی یک فایل جدید با همین نام بسازی. - ویرایش فایل: روی فایل
.htaccess
راست کلیک کن و گزینه Edit رو انتخاب کن. - اضافه کردن کد: به انتهای فایل برو و این کد
Options -Indexes
رو اضافه کن - ذخیره تغییرات: بعد از اضافه کردن کد، تغییرات رو ذخیره کن و فایل رو ببند.
نتیجه
حالا وقتی کسی سعی کنه به دایرکتوریهایی که فایل index ندارن دسترسی پیدا کنه، به جای لیست فایلها، یه پیام خطا میگیره. این یعنی سایتت امنتر شده و اطلاعات حساسی که ممکنه توی دایرکتوریها باشه، از چشم دور مونده.
جمعبندی
غیرفعال کردن مرور دایرکتوری یکی از کارهای ساده و سریع برای افزایش امنیت سایتته. با این کار، میتونی خیال خودت و کاربرات رو راحت کنی و از خطرات احتمالی جلوگیری کنی. پس همین حالا دست به کار شو و این کار رو انجام بده!
مخفی کردن نسخه وردپرس
وقتی نسخه وردپرس رو پنهان کنی، کمتر به چشم هکرها میاد و احتمال حمله به سایتت کاهش پیدا میکنه. حالا ببینیم چطور میتونی این کار رو انجام بدی.
چرا باید نسخه وردپرس رو مخفی کنیم؟
وقتی کسی میدونه سایتت با کدوم نسخه وردپرس کار میکنه، میتونه نقاط ضعف و آسیبپذیریهای خاص اون نسخه رو پیدا کنه و به راحتی به سایتت حمله کنه. بنابراین، پنهان کردن نسخه وردپرس به معنای افزایش امنیت سایتته.
چطور نسخه وردپرس رو مخفی کنیم؟
برای مخفی کردن نسخه وردپرس، میتونی چند راهکار ساده رو امتحان کنی:
1. استفاده از کد در functions.php
به راحتی میتونی با اضافه کردن یه کد ساده به فایل functions.php
قالب سایتت، نسخه وردپرس رو پنهان کنی. این کد رو به انتهای فایل functions.php
اضافه کن:
remove_action('wp_head', 'wp_generator');
با این کار، تگ مربوط به نسخه وردپرس از هدر سایتت حذف میشه و کسی نمیتونه نسخه وردپرس سایتت رو ببینه.
2. استفاده از افزونههای امنیتی
اگر دوست داری راحتتر باشی، میتونی از افزونههای امنیتی مثل Wordfence یا iThemes Security استفاده کنی. این افزونهها معمولاً گزینهای برای مخفی کردن نسخه وردپرس دارن و کار رو برات راحت میکنن.
تغییر پیشوند جداول دیتابیس وردپرس
وقتی پیشوند پایگاه داده وردپرس رو تغییر میدی، جلوی اجرای حملات SQL Injection علیه پایگاه داده سایتت رو میگری. شاید واست سوال باشه چطور؟ میگم بهت!
پیشوند پایگاه داده یعنی چی؟
هر وقت که وردپرس رو نصب میکنی، به طور پیشفرض از پیشوند wp_
برای جداول پایگاه داده استفاده میکنه. یعنی همه جداول مثل wp_posts
، wp_users
و… با این پیشوند شروع میشن. حالا اگر کسی بخواد به سایتت حمله کنه، با استفاده از این پیشوند پیشفرض میتونه به راحتی نقاط ضعف رو پیدا کنه.
چرا باید پیشوند رو تغییر بدیم؟
با تغییر پیشوند، به هکرها این امکان رو نمیدی که به راحتی به ساختار پایگاه داده سایتت دسترسی پیدا کنن. این کار باعث میشه که امنیت سایتت بالاتر بره و به راحتی نتونن از آسیبپذیریها استفاده کنن.
چطور پیشوند پایگاه داده رو تغییر بدیم؟
چطور میتونی این کار رو انجام بدی:
1. بکاپ گرفتن
قبل از هر کاری، اولین و مهمترین قدم اینه که از پایگاه داده و فایلهای سایتت بکاپ بگیری. این کار بهت اطمینان میده که اگر چیزی به هم ریخت، میتونی برگردی به حالت قبلی.
2. تغییر پیشوند در wp-config.php
فایل wp-config.php
رو باز کن و به دنبال خطی بگرد که به شکل زیره:
$table_prefix = 'wp_';
حالا این خط رو تغییر بده و به جای wp_
یه پیشوند جدید و خاص بزار، مثلاً:
$table_prefix = 'mynewprefix_';
3. تغییر نام جداول در پایگاه داده
حالا باید نام جداول موجود در پایگاه داده رو تغییر بدی. برای این کار میتونی از phpMyAdmin استفاده کنی:
- وارد phpMyAdmin شو و پایگاه دادهات رو انتخاب کن.
- همه جداول رو پیدا کن و به ترتیب نامشون رو تغییر بده. مثلاً از
wp_posts
بهmynewprefix_posts
تغییر بده.
4. تغییر نام در wp_options
در جدول mynewprefix_options
(یا هر نام دیگهای که استفاده کردی)، به دنبال گزینههای wp_user_roles
و wp_capabilities
بگرد و اونا رو هم به روز کن.
5. بررسی پلاگینها و تمها
اگر از پلاگینها یا تمهایی استفاده میکنی که به پایگاه داده دسترسی دارن، مطمئن شو که اونها هم با پیشوند جدید هماهنگ شده باشن.
توجه! برای تغییر پیشوند جداول پایگاه داده وردپرس میتونیاز افزونه کمک بگیری افزونه هایی مثل WP Prefix Changer یا Change Table Prefix میتونن بهت کمک کنن.
استفاده از افزونه های فایروال و امنیتی
این افزونهها مثل یک سپر محکم عمل میکنن و از سایتت در برابر حملات مختلف محافظت میکنن. قابلیل هایی که من بالاتر گفتم و حتی بیشترشو این افزون ها پوشش میدن.
چرا به افزونههای فایروال نیاز داریم؟
با توجه به اینکه وردپرس یکی از محبوبترین سیستمهای مدیریت محتواست، هکرها و حملات مختلف هم بیشتر روی سایتهای وردپرسی تمرکز دارن. افزونههای فایروال میتونن جلوی این حملات رو بگیرن و امنیت سایتت رو بالا ببرن. این افزونهها معمولاً شامل امکاناتی مثل:
- جلوگیری از حملات DDoS: با کنترل ترافیک ورودی، جلوی حملات و درخواستهای غیرمجاز رو میگیرن.
- اسکن فایلهای مشکوک: فایلهای سایت رو بررسی میکنن و اگر چیزی مشکوک پیدا کنن، بهت هشدار میدن.
- مدیریت دسترسی: میتونی دسترسی کاربران رو محدود کنی و فقط به افراد مجاز اجازه ورود بدی.
بهترین افزونههای فایروال و امنیتی
چند تا از بهترین افزونههای امنیتی وردپرس رو معرفی کردم اینجا:
1. Wordfence Security
این افزونه یکی از محبوبترین و کاملترین افزونههای امنیتی وردپرسیه. امکاناتی مثل فایروال، اسکنر امنیتی و قابلیت بلاک کردن IPهای مشکوک رو داره. استفاده ازش هم خیلی سادهست و به راحتی میتونی تنظیماتش رو انجام بدی.
2. iThemes Security
این افزونه هم امکانات امنیتی فوقالعادهای رو بهت میده. از جمله تغییر آدرس ورود به وردپرس، محدود کردن تعداد تلاشهای ورود و خیلی کارای دیگه. فایروال قویای هم داره که به محافظت از سایتت کمک میکنه.
3. Sucuri Security
این افزونه به ویژه برای نظارت بر امنیت سایتهای وردپرسی طراحی شده. شامل اسکن فایلهای سایت و فایروال قویای هست که به جلوگیری از حملات کمک میکنه. همچنین، از حملات XSS و SQL Injection هم جلوگیری میکنه.
حذف پیغام خطا در صفحه ورود وردپرس
وقتی کسی میخواد به حساب کاربریش وارد بشه و نام کاربری یا رمز عبور رو اشتباه وارد میکنه، معمولاً یک پیغام خطا نشون داده میشه که بهش میگه چه چیزی اشتباه بوده. چرا باید این پیغامها رو حذف کنیم و چطور این کار رو انجام بدیم؟
چرا باید پیغام خطا رو حذف کنیم؟
- کاهش اطلاعات به هکرها: وقتی پیغام خطا نشون داده میشه، هکرها میتونن بفهمن که کدوم قسمت اشتباه بوده (مثلاً نام کاربری اشتباه یا رمز عبور). این اطلاعات بهشون کمک میکنه که به راحتی به حسابهای کاربری نفوذ کنن.
- افزایش سختی برای نفوذ: اگر هیچ اطلاعات خاصی درباره اینکه چه چیزی اشتباهه به کاربر نشون ندی، کار هکرها برای حدس زدن نام کاربری و رمز عبور سختتر میشه.
چطور پیام خطا رو حذف کنیم؟
برای حذف پیام خطا در صفحه ورود وردپرس، میتونی کد زیر رو به فایل functions.php
قالب فعال سایتت اضافه کنی:
function RayaWP_login_error_message() {
return __('متاسفانه ورود ناموفق بود. لطفا دوباره تلاش کنید.');
}
add_filter('login_errors', 'RayaWP_login_error_message');
با این کار، به جای پیام خطای پیشفرض وردپرس، یک پیام عمومی به کاربر نشون داده میشه. به این ترتیب، هکرها نمیتونن بفهمن چه چیزی اشتباه بوده.
محافظت از فایل wp-config.php
محافظت از فایل wp-config.php
یکی از کارهای خیلی مهم برای افزایش امنیت سایت وردپرسیته. این فایل شامل تنظیمات حساس و مهمی مثل اطلاعات پایگاه داده و کلیدهای امنیتی وردپرسه، بنابراین باید مطمئن بشی که از دسترسی غیرمجاز بهش جلوگیری کنی.
چرا باید از wp-config.php محافظت کنیم؟
- حفاظت از اطلاعات حساس: این فایل شامل نام کاربری، رمز عبور و اطلاعات اتصال به پایگاه دادهست. اگر کسی به این اطلاعات دسترسی پیدا کنه، میتونه به راحتی به سایتت نفوذ کنه.
- جلوگیری از حملات: با محافظت از این فایل، میتونی از حملات متداول مثل SQL Injection و دیگر نوع حملات جلوگیری کنی.
چطور از فایل wp-config.php محافظت کنیم؟
1. تغییر مجوزهای فایل
مطمئن شو که مجوزهای فایل wp-config.php
به درستی تنظیم شده. برای این کار میتونی از FTP یا پنل مدیریت هاستت استفاده کنی و مجوزها رو به 440
یا 400
تغییر بدی. این کار باعث میشه که فقط کاربر مالک فایل بتونه بهش دسترسی پیدا کنه.
2. استفاده از .htaccess
میتونی با اضافه کردن چند خط کد به فایل .htaccess
، دسترسی به wp-config.php
رو محدود کنی. کد زیر رو به فایل .htaccess
اضافه کن:
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
این کد باعث میشه که هیچکس نتونه به فایل wp-config.php
دسترسی پیدا کنه، جز خود سرور.
3. جابجا کردن فایل
اگر میخوای سطح امنیت رو بالاتر ببری، میتونی فایل wp-config.php
رو یک سطح بالاتر از دایرکتوری ریشه وردپرس (public_html) قرار بدی. وردپرس به طور خودکار این فایل رو پیدا میکنه و ازش استفاده میکنه.
4. استفاده از افزونههای امنیتی
افزونههای امنیتی مثل Wordfence یا iThemes Security معمولاً امکاناتی برای محافظت از فایل wp-config.php
دارن. با استفاده از این افزونهها میتونی به راحتی امنیت سایتت رو افزایش بدی.
افزودن کپچا یا سوال امنیتی به فرم ورود وردپرس
افزودن کپچا یا سوال امنیتی به فرم ورود وردپرس یکی از کارهای فوقالعاده برای افزایش امنیت سایتت هست. این کار بهت کمک میکنه که جلوی حملات خودکار و ورودهای غیرمجاز رو بگیری.
چرا باید کپچا یا سوال امنیتی اضافه کنیم؟
- جلوگیری از حملات خودکار: با اضافه کردن کپچا، ربات ها نمیتونن به راحتی وارد سایتت بشن و این یعنی امنیت بیشتر.
- تأیید هویت کاربران: این کار بهت کمک میکنه مطمئن بشی که کاربر واقعی داره وارد میشه، نه یک ربات یا هکر.
چطور کپچا یا سوال امنیتی رو اضافه کنیم؟
1. استفاده از پلاگین کپچا
بهترین و سادهترین راه برای اضافه کردن کپچا، استفاده از افزونههای وردپرسیه. یکی از محبوبترین افزونهها Google Captcha (reCAPTCHA) هست. بیا بهت بگم چطور میتونی از این افزونه استفاده کنی:
- نصب افزونه:
- به پیشخوان وردپرس برو و روی «افزونهها» کلیک کن.
- گزینه «افزودن» رو بزن و در کادر جستجو بنویس Google Captcha.
- افزونه رو نصب و فعال کن.
- تنظیمات افزونه:
- بعد از فعالسازی، به قسمت «تنظیمات» یا «Captcha» برو.
- باید کلیدهای API (Site Key و Secret Key) رو از سایت گوگل بگیری. به صفحه reCAPTCHA گوگل برو، ثبتنام کن و کلیدها رو بگیر.
- این کلیدها رو در تنظیمات افزونه وارد کن و تنظیمات رو ذخیره کن.
- تست: به صفحه ورود سایتت برو و ببین که آیا کپچا اضافه شده یا نه. حالا کاربران باید کپچا رو حل کنن تا بتونن وارد بشن.
2. استفاده از سوال امنیتی
اگر نمیخوای از کپچای گوگل استفاده کنی، میتونی بایک کد ساده سوال امنیتی اضافه کنی. برای این کار، میتونی کد زیر رو به فایل functions.php
قالب سایتت اضافه کنی:
// تابع برای تولید سوال امنیتی
function RayaWP_show_security_question() {
// تولید دو عدد تصادفی بین 1 تا 9
$num1 = rand(1, 9);
$num2 = rand(1, 9);
// ذخیره حاصل جمع در سشن برای بررسی بعدی
session_start();
$_SESSION['security_answer'] = $num1 + $num2;
// نمایش سوال امنیتی
?>
<p>
<label for="security_question">سوال امنیتی: <?php echo $num1 . ' + ' . $num2 . ' = ؟'; ?></label>
<input type="text" name="security_question" id="security_question" class="input" value="" size="20" />
</p>
<?php
}
add_action('login_form', 'RayaWP_show_security_question');
// تابع برای بررسی پاسخ سوال امنیتی
function RayaWP_validate_security_question($user, $username, $password) {
session_start(); // شروع سشن برای دسترسی به جواب ذخیرهشده
if (isset($_POST['security_question']) && $_POST['security_question'] != $_SESSION['security_answer']) {
return new WP_Error('incorrect_security_answer', __('جواب سوال امنیتی اشتباهه.'));
}
return $user;
}
add_filter('wp_authenticate_user', 'RayaWP_validate_security_question', 10, 3);
توجه! کد بالا یه سوال امنیتی ساده که حاصل جمع دو عدد رندوم بین 1 تا 9 هست رو از کاربر میپرسه و جوابو چک میکنه
3. تست
حالا به صفحه ورود برو و ببین که آیا سوال امنیتی یا کپچا به فرم اضافه شده یا نه.
غیرفعال کردن اجرای کد PHP در برخی دایرکتوری های خاص
غیرفعال کردن اجرای کد PHP در دایرکتوریهای خاص یکی از اقدامات مهم امنیتی برای حفاظت از سایتت هست. این کار به جلوگیری از اجرای فایلهای مخرب در دایرکتوریهای حساس کمک میکنه.
1. استفاده از فایل .htaccess
یکی از سادهترین و مؤثرترین روشها، استفاده از فایل .htaccess
هست. برای غیرفعال کردن اجرای کد PHP در یک دایرکتوری خاص، میتونی به سادگی کد زیر رو به فایل .htaccess
در دایرکتوری مورد نظر اضافه کنی:
apacheCopy code<Files *.php>
Deny from all
</Files>
این کد رو به فایل htaccess
داخل دایرکتوری به ویژه آپلودها uploads قرار بده که کاربر وردپرس نتونه کد مخرب php از طریق پیشخوان آپلود و اجرا کنه.
2. ایجاد فایل .htaccess
جدید
اگر دایرکتوری خاصی که میخوای اجرای PHP رو غیرفعال کنی، هنوز فایل .htaccess
نداره، میتونی یک فایل جدید به نام .htaccess
در اون دایرکتوری ایجاد کنی و کد بالا رو در اون قرار بدی.
5. استفاده از پلاگینهای امنیتی
اگر نمیخوای کد نویسی کنی یا کار با فایلهای سرور برات سخت هست، میتونی از افزونههای امنیتی مثل Wordfence یا Sucuri استفاده کنی. این افزونهها قابلیتهای متنوعی دارن و به تو کمک میکنن که امنیت سایتت رو افزایش بدی.
بررسی و محدود کردن فایلهای قابل آپلود در کتابخانه وردپرس
با کد php زیر به کاربرها اجازه نمیده که فایلهایی با پسوند مثل php رو در سایت آپلود کنند اینطوری میتونی از آپلود فایل ها یا کدهای مخرب توسط کاربر در سایتت جلوگیری کنی:
کد زیر رو به فایل function.php قالب سایتت اضافه کن:
// محدود کردن نوع فایلهای قابل آپلود
function restrict_upload_mimes($mimes) {
unset($mimes['exe']);
unset($mimes['php']);
return $mimes;
}
add_filter('upload_mimes', 'restrict_upload_mimes');
شاید برات سوال باشه
چرا امنیت سایت وردپرسی مهم است؟
امنیت سایت وردپرسی برای حفاظت از اطلاعات کاربران، جلوگیری از هک شدن، و حفظ اعتبار برند بسیار مهم است. هکرها میتوانند به دادههای حساس دسترسی پیدا کنند و سایت را به خطر بیندازند.
بهترین روش برای انتخاب رمز عبور چیست؟
برای انتخاب رمز عبور قوی، از ترکیبی از حروف بزرگ و کوچک، اعداد و نمادها استفاده کنید. حداقل طول رمز عبور باید 12 کاراکتر باشد.
چگونه میتوانم از حملات brute force جلوگیری کنم؟
میتوانید با محدود کردن تعداد تلاشهای ورود، استفاده از CAPTCHA، و فعالسازی احراز هویت دو مرحلهای از حملات brute force جلوگیری کنید.
آیا تغییر پیشوند پایگاه داده ضروری است؟
بله، تغییر پیشوند پایگاه داده میتواند به افزایش امنیت سایت کمک کند و از حملات SQL Injection جلوگیری کند.
چگونه میتوانم هکرها را شناسایی کنم؟
با استفاده از لاگهای فعالیت، ثبت ورودهای مشکوک و بررسی رفتار کاربران، میتوانید هکرها را شناسایی کنید.
سخن پایانی:
سعی میکنم این مقاله که پیرامون افزایش امنیت وردپرس نوشته شده رو کاملترش کنم به مرور البته و به کمک تو 🙂 اگه تو هم نکته ای داری که میخای اضافه بشه به مقاله قسمت دیدگاه ها بگو تا راجع بهش باهم حرف بزنیم .