המחשבה ש"תוסף לא פעיל הוא בטוח כי הוא לא רץ" שגויה. הקוד של התוסף עדיין יושב על השרת, ובמקרים רבים פגיעויות בו ניתנות לניצול גם בלי שהתוסף יהיה פעיל - דרך AJAX endpoints חשופים, דרך REST routes שנרשמות בעת התקנה, או דרך כללי .htaccess שנותרו אחרי שהתוסף הושבת.
למה זה משנה
פגיעויות וורדפרס מתפרסמות באופן ציבורי דרך מסדי CVE ו-WPScan. בוטים סורקים את האינטרנט אחר אתרי וורדפרס פגיעים, ובודקים אם קבצי תוסף ספציפי קיימים בנתיב מסוים - לא אם הוא פעיל. דוגמה קלאסית: פגיעות RCE ב-File Manager שזיהתה אם הקובץ /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php נגיש. בוט שזיהה זאת לא בדק אם התוסף enabled. תוסף לא פעיל הוא לא תוסף לא נגיש.
בנוסף, תוספים ישנים שלא עודכנו לגרסת PHP או וורדפרס החדשה עלולים להכיל syntax שמייצר שגיאות גם בלי שהם רצים. ולבסוף - כל תוסף הוא טבעת בשרשרת אמון: התקנת פלאגין יוצרת חיבור עם המפתח שלו, שעלול להיפרץ ולשלוח עדכון זדוני (supply chain attack, קרה לתוספים גדולים בעבר).
איך לזהות
גש ל-Plugins > Installed Plugins, וסנן לפי Inactive. הרשימה תראה את כל התוספים המותקנים שאינם פעילים. RankPlus סורק את get_plugins() ומשווה ל-get_option('active_plugins') כדי לזהות אותם. דרך WP-CLI:
wp plugin list --status=inactive --format=tableאיך לתקן
- עבור על הרשימה. לכל תוסף שאל: האם אעשה בו שימוש בששת החודשים הקרובים?
- אם לא - מחק. אפשר תמיד להתקין מחדש מהמאגר אם תצטרך בעתיד.
- אם כן אבל לא עכשיו - שאל למה הוא לא פעיל. אם זה כי הוא שובר משהו, הוא לא ימשיך להיות יעיל יום אחד.
- בדף Plugins, סמן את הצ'קבוקסים של התוספים למחיקה, פתח את "Bulk actions" ובחר "Delete". תופיע התראת אישור.
- בדוק האם תוסף שאתה מוחק יצר טבלאות DB משלו. תוספים מסוימים מציעים "clean uninstall" שמוחקים אותן; לאחרים תצטרך למחוק ידנית:
wp db query "SHOW TABLES LIKE 'wp_pluginname_%'". - נקה
wp_optionsמשאריות:SELECT * FROM wp_options WHERE option_name LIKE '%pluginname%'- אם יש אופציות שלא בשימוש, מחק.
טעויות נפוצות
- השארת תוסף "לבדיקה עתידית" במשך שנה - הסיכון מצטבר.
- מחיקה בלי לבדוק תלות: יש תוספים שתלויים אחד בשני (למשל WooCommerce + WooCommerce Subscriptions). מחיקה של פעיל גורמת ל-fatal של התלוי.
- מחיקה דרך FTP בלבד במקום מתוך wp-admin: זה לא מריץ את
uninstall.phpשל התוסף, ולכן טבלאות ואופציות נשארות. - תוסף mu-plugin שנשכח:
wp-content/mu-plugins/רץ תמיד. אם פעם הוסף שם משהו והשכחת - הוא עדיין פעיל. בדוק.
בדיקה לאחר תיקון
הרץ שוב wp plugin list --status=inactive - אמורה להישאר רק הרשימה הנכונה. ב-RankPlus הסטטוס יחזור לירוק. בדוק שהאתר עדיין עובד: גש לדף הראשי ולפוסט אקראי - שום דבר לא אמור להישבר ממחיקת תוסף לא פעיל. אם משהו נשבר - זה אומר שהתוסף לא היה באמת "לא פעיל".
uninstall.php של תוסף עושה דברים אגרסיביים (מוחק טבלאות, אופציות) שלא תוכל לשחזר בקלות. שווה להריץ את הסריקה של RankPlus פעם בחודש כדי לוודא שלא הצטברו תוספים לא פעילים חדשים מבדיקות זמניות שעשית. עוד שיטה: צור רשימת "תוספים מאושרים" עבור הצוות שלך - אם תוסף לא ברשימה ולא פעיל, הוא מועמד למחיקה. אתרי לקוחות מנוהלים לעיתים מצברים תוספים מהתקנות ניסוי של בעלים הקודמים; ניקוי תקופתי מקטין את ה-attack surface ומשפר ביצועים.