آموزش حذف شماره نسخه وردپرس
آیا میدانستید که نمایش شماره نسخه وردپرس در کد منبع سایت شما، میتواند یک خطر امنیتی جدی باشد؟ وردپرس بهصورت پیشفرض، شماره نسخه خود را در چندین بخش از سایت از جمله تگ متای 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');نحوه عملکرد کد به صورت گام به گام
در این بخش، هر بخش از کد را به صورت دقیق بررسی میکنیم و نحوه عملکرد آن را توضیح میدهیم:
- خطوط ۸ تا ۱۰ – حذف نسخه از تگ متا و RSS: تابع
wpwm_remove_version()با استفاده از فیلترthe_generator، خروجی تابع تولیدکننده تگ متا و RSS را به یک رشته خالی تبدیل میکند. این کار باعث میشود که شماره نسخه وردپرس از این دو بخش حذف شود. - خطوط ۱۳ تا ۲۲ – حذف نسخه از فایلهای CSS و JS: این بخش اختیاری، نسخههای اضافه شده به آدرس فایلهای CSS و جاوااسکریپت (مانند
style.css?ver=6.0) را حذف میکند. تابعwpwm_remove_version_strings()با بررسی پارامترverدر آدرس فایل، در صورت وجود، آن را حذف میکند. - خطوط ۱۴ و ۱۵ – دریافت نسخه وردپرس و پارامترها: با استفاده از
global $wp_versionبه نسخه جاری وردپرس دسترسی پیدا میکنیم و باparse_urlوparse_str، پارامترهای آدرس فایل را تجزیه و تحلیل میکنیم. - خطوط ۱۶ تا ۱۸ – بررسی و حذف پارامتر ver: اگر پارامتر
verدر آدرس فایل وجود داشته باشد و مقدار آن برابر با نسخه وردپرس باشد، با استفاده ازremove_query_arg('ver', $src)این پارامتر از آدرس حذف میشود. - خطوط ۲۱ و ۲۲ – اعمال فیلترها: با استفاده از
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 پرداختیم. با استفاده از کد ساده و استانداردی که ارائه شد، میتوانید یک لایه امنیتی دیگر به سایت خود اضافه کنید و از دسترسی هکرها به اطلاعات نسخه سایت جلوگیری نمایید. این کار به ویژه برای سایتهایی که ممکن است در بهروزرسانیها تأخیر داشته باشند، بسیار مفید است. به یاد داشته باشید که این روش جایگزین بهروزرسانی منظم و استفاده از رمزهای عبور قوی نمیشود، اما یک اقدام مکمل و ارزشمند برای افزایش امنیت سایت شما محسوب میشود.
امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوالی درباره حذف شماره نسخه وردپرس، نحوه استفاده از کد یا هر بخش دیگری از این آموزش دارید، لطفاً در بخش نظرات مطرح کنید. همچنین اگر تجربهای در افزایش امنیت وردپرس دارید، خوشحال میشویم آن را با ما و سایر کاربران به اشتراک بگذارید.







