آموزش حذف یا مخفی کردن شماره نسخه وردپرس

آموزش حذف شماره نسخه وردپرس

آیا می‌دانستید که نمایش شماره نسخه وردپرس در کد منبع سایت شما، می‌تواند یک خطر امنیتی جدی باشد؟ وردپرس به‌صورت پیش‌فرض، شماره نسخه خود را در چندین بخش از سایت از جمله تگ متای generator در هدر صفحات، آدرس فایل‌های CSS و جاوااسکریپت و حتی فیدهای RSS قرار می‌دهد. این اطلاعات برای کاربران عادی بی‌اهمیت است، اما برای هکرها و ربات‌های مخرب که به دنبال پیدا کردن سایت‌های با نسخه‌های قدیمی و آسیب‌پذیر هستند، یک راهنمای ارزشمند محسوب می‌شود. در این مقاله از مجموعه مقالات آموزشی وردپرس، به شما آموزش می‌دهیم که چگونه با استفاده از یک کد ساده در فایل functions.php، شماره نسخه وردپرس را از هدر سایت خود حذف کرده و یک لایه امنیتی دیگر به سایت خود اضافه کنید.

چرا حذف شماره نسخه وردپرس برای امنیت سایت اهمیت دارد؟

با اینکه به‌روز نگه داشتن وردپرس مهم‌ترین اقدام امنیتی است, اما مخفی کردن شماره نسخه نیز یک راهکار مؤثر برای کاهش سطح حمله (Attack Surface) محسوب می‌شود. هکرها معمولاً با اسکن کردن سایت‌ها به دنبال نسخه‌های خاصی از وردپرس می‌گردند که دارای آسیب‌پذیری‌های شناخته‌شده هستند. اگر شماره نسخه سایت شما در دسترس نباشد، این حملات خودکار و فرصت‌طلبانه به مراتب دشوارتر می‌شوند. همچنین، حذف این اطلاعات به پاک‌سازی کد منبع سایت و بهبود امنیت از طریق پنهان‌سازی (Security through Obscurity) کمک می‌کند. توجه داشته باشید که این کار به‌هیچ‌وجه جایگزین به‌روزرسانی منظم و استفاده از رمزهای عبور قوی نمی‌شود، اما یک لایه محافظتی اضافی و ارزشمند است.

راهکار حذف شماره نسخه وردپرس با کد اختصاصی

برای حذف شماره نسخه وردپرس، روش‌های مختلفی وجود دارد که برخی از آن‌ها مانند ویرایش مستقیم فایل header.php یا استفاده از remove_action('wp_head', 'wp_generator')، تنها تگ متا را حذف می‌کنند و ناقص هستند. بهترین و کامل‌ترین روش، استفاده از فیلتر the_generator در فایل functions.php است. این روش به‌صورت همزمان، شماره نسخه را از تگ متای هدر و فیدهای RSS حذف می‌کند. کدی که در این مقاله ارائه می‌شود، بسیار ساده، استاندارد و با تمامی نسخه‌های وردپرس سازگار است. برای حذف کامل‌تر، می‌توانید فیلترهای مربوط به آدرس فایل‌های CSS و جاوااسکریپت را نیز اضافه کنید تا شماره نسخه از ?ver= آن‌ها نیز حذف شود.

کد کامل حذف شماره نسخه وردپرس (نسخه استاندارد و بهینه)

در زیر کد کامل و استاندارد برای حذف شماره نسخه وردپرس از هدر و فیدهای RSS آورده شده است. این کد را در انتهای فایل functions.php قالب فرزند خود قرار دهید.

/*
 * Remove WordPress Version Number from Headers and RSS Feeds
 * Enhances site security by hiding the WordPress version from public source code
 * Mahdi Jafarzadeh
 * https://www.wpwm.ir/
 */

// Remove version from generator meta tag and RSS feeds
function wpwm_remove_version() {
    return '';
}
add_filter('the_generator', 'wpwm_remove_version');

// Optional: Remove version query strings from CSS and JS files
function wpwm_remove_version_strings($src) {
    global $wp_version;
    parse_str(parse_url($src, PHP_URL_QUERY), $query);
    if (!empty($query['ver']) && $query['ver'] === $wp_version) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('script_loader_src', 'wpwm_remove_version_strings');
add_filter('style_loader_src', 'wpwm_remove_version_strings');

نحوه عملکرد کد به صورت گام به گام

در این بخش، هر بخش از کد را به صورت دقیق بررسی می‌کنیم و نحوه عملکرد آن را توضیح می‌دهیم:

  1. خطوط ۸ تا ۱۰ – حذف نسخه از تگ متا و RSS: تابع wpwm_remove_version() با استفاده از فیلتر the_generator، خروجی تابع تولیدکننده تگ متا و RSS را به یک رشته خالی تبدیل می‌کند. این کار باعث می‌شود که شماره نسخه وردپرس از این دو بخش حذف شود.
  2. خطوط ۱۳ تا ۲۲ – حذف نسخه از فایل‌های CSS و JS: این بخش اختیاری، نسخه‌های اضافه شده به آدرس فایل‌های CSS و جاوااسکریپت (مانند style.css?ver=6.0) را حذف می‌کند. تابع wpwm_remove_version_strings() با بررسی پارامتر ver در آدرس فایل، در صورت وجود، آن را حذف می‌کند.
  3. خطوط ۱۴ و ۱۵ – دریافت نسخه وردپرس و پارامترها: با استفاده از global $wp_version به نسخه جاری وردپرس دسترسی پیدا می‌کنیم و با parse_url و parse_str، پارامترهای آدرس فایل را تجزیه و تحلیل می‌کنیم.
  4. خطوط ۱۶ تا ۱۸ – بررسی و حذف پارامتر ver: اگر پارامتر ver در آدرس فایل وجود داشته باشد و مقدار آن برابر با نسخه وردپرس باشد، با استفاده از remove_query_arg('ver', $src) این پارامتر از آدرس حذف می‌شود.
  5. خطوط ۲۱ و ۲۲ – اعمال فیلترها: با استفاده از add_filter، تابع wpwm_remove_version_strings را به فیلترهای script_loader_src و style_loader_src متصل می‌کنیم تا در هنگام بارگذاری فایل‌های CSS و JS اعمال شود.

نکات مهم

در این بخش به نکات کلیدی برای استفاده صحیح از این کد و افزایش امنیت سایت اشاره می‌کنیم که باید به آن‌ها توجه ویژه‌ای داشته باشید:

  • استفاده از قالب فرزند: کد را در فایل functions.php قالب فرزند قرار دهید تا با بروزرسانی قالب اصلی، تغییرات شما از بین نرود. در غیر این صورت، با هر بار بروزرسانی قالب، کد حذف خواهد شد.
  • استفاده از افزونه به جای کد: اگر با ویرایش فایل functions.php آشنایی ندارید، می‌توانید از افزونه‌های آماده مانند Remove Version Info یا Metadas Version Removal استفاده کنید. این افزونه‌ها علاوه بر حذف نسخه، امنیت هدرها را نیز بهبود می‌بخشند.
  • تست پس از اعمال کد: پس از افزودن کد، حتماً با مشاهده کد منبع صفحه (CTRL+U) و بررسی فید RSS سایت، از حذف شدن شماره نسخه اطمینان حاصل کنید.
  • حذف فایل‌های readme: برخی از قالب‌ها و افزونه‌ها دارای فایل‌های readme.txt یا readme.html هستند که ممکن است شماره نسخه را در خود داشته باشند. برای افزایش امنیت، این فایل‌ها را نیز حذف کنید.
  • محدودیت روش: این کد فقط شماره نسخه وردپرس را حذف می‌کند و تأثیری بر نسخه قالب و افزونه‌ها ندارد. برای افزایش امنیت، نسخه قالب و افزونه‌ها را نیز از دید پنهان کنید.
  • به‌روزرسانی مهم‌تر از مخفی‌سازی: همان‌طور که اشاره شد، به‌روز نگه داشتن وردپرس، قالب و افزونه‌ها بسیار مهم‌تر از مخفی کردن شماره نسخه است. این کار یک لایه امنیتی اضافی است، نه یک راهکار کامل.

جمع‌بندی

در این مقاله از سری مقالات آموزشی وردپرس، به بررسی روش حذف شماره نسخه وردپرس از هدر و فیدهای RSS پرداختیم. با استفاده از کد ساده و استانداردی که ارائه شد، می‌توانید یک لایه امنیتی دیگر به سایت خود اضافه کنید و از دسترسی هکرها به اطلاعات نسخه سایت جلوگیری نمایید. این کار به ویژه برای سایت‌هایی که ممکن است در به‌روزرسانی‌ها تأخیر داشته باشند، بسیار مفید است. به یاد داشته باشید که این روش جایگزین به‌روزرسانی منظم و استفاده از رمزهای عبور قوی نمی‌شود، اما یک اقدام مکمل و ارزشمند برای افزایش امنیت سایت شما محسوب می‌شود.

امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوالی درباره حذف شماره نسخه وردپرس، نحوه استفاده از کد یا هر بخش دیگری از این آموزش دارید، لطفاً در بخش نظرات مطرح کنید. همچنین اگر تجربه‌ای در افزایش امنیت وردپرس دارید، خوشحال می‌شویم آن را با ما و سایر کاربران به اشتراک بگذارید.

نظر یا سوال شما درباره این کد

اگر نظر یا سوالی درباره این کد دارید بنویسید، ما در سریعترین زمان بررسی می‌کنیم و جواب شما رو میدیم.

ایمیل شما منتشر نخواهد شد.
اولین نفری باشید که نظر می دهد!

مقالات آموزش و نکات وردپرس