בקובץ wp-config.php מופיעות 8 קונסטנטות בשמות AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, ו-4 SALT-ים מקבילים. אלה מפתחות הצפנה אקראיים שמשמשים את WordPress ליצירת עוגיות הסשן ול-nonces. כל מי שתופס את ה-salts (לדוגמה דרך פרצה שחושפת את wp-config.php) יכול לזייף עוגיית מנהל. החלפת ה-salts היא היגיינה בסיסית ובעיקר תגובה חשובה לאחר חשד פריצה.
למה זה משנה
עוגיית login של WordPress היא בעצם hash של שם משתמש + תאריך תפוגה + ערך סודי שמופק מ-salts. כשתוקף משיג את ה-salts (למשל תרץ דליפה של wp-config.php דרך כשל הרשאות, גישה ל-DB עם plugin פגיע, או backup לא מוצפן ב-uploads), הוא יכול לבנות עוגיית auth מזויפת לכל משתמש – בלי לדעת את הסיסמה. גם בלי דליפה ישירה, החלפת salts לפי לוח זמנים סדיר היא best practice: היא מבטלת כל סשן פעיל ומחייבת login מחדש, מה שמגביל את ההשפעה של עוגייה גנובה ש"רצה ברקע".
איך לזהות
במצב רגיל אין "בדיקה" שאומרת "salts ישנים". אם האודיט מציין salts – לרוב זה אומר שמצא ערך ברירת מחדל ("put your unique phrase here") שלא הוחלף בעת ההתקנה הראשונית. הסתכל ב-wp-config.php על השורות:
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
אם רואים את הטקסט המקורי – לא נוצרו salts ייחודיים. סטטיסטית, זה קורה כשהאתר הוקם דרך העתקה ידנית של תיקיית WordPress בלי הפעלת installer.
איך לתקן
שלב 1 – יצירת salts חדשים: גש ל-https://api.wordpress.org/secret-key/1.1/salt/. הדף מחזיר 8 שורות מוכנות להעתקה.
שלב 2 – העתק את ה-8 שורות. ב-wp-config.php, מצא את הבלוק הקיים והחלף את כולו:
define('AUTH_KEY', 'X4#kP9mQ@vN2$wL8&rT6^eY3*hG7!fJ5...');
define('SECURE_AUTH_KEY', 'B8&jR3$pK7@nM2#wQ9*xL5^hF4!eT6%dS1...');
define('LOGGED_IN_KEY', 'D5*fG2!nP9$jM4@kT7&xL3^wQ8%bR1#vH6...');
define('NONCE_KEY', 'F1@hK4*nT9$mL6&xR2^pQ7!jB5%wD3#cV8...');
define('AUTH_SALT', 'G7&mP3$wK8@nT5*xL2^jR6!hF1%bD9#qV4...');
define('SECURE_AUTH_SALT', 'H2#vN6$pK9*mT4&wL7^xR1!jF8%bD5@cQ3...');
define('LOGGED_IN_SALT', 'J9!fT4$kP7@nL2*wM6^xR3&hB1%cV8#qD5...');
define('NONCE_SALT', 'K3*pR8$mN5@kT2&xL9^wQ6!jF1%bH4#vD7...');
שלב 3 – שמור את הקובץ. ברגע השמירה, כל המשתמשים (גם אתה) מקבלים 401 בבקשה הבאה ונדרשים להתחבר מחדש.
טעויות נפוצות
טעות ראשונה: לערוך את ה-salts ידנית ולהשתמש באותו מחרוזת לכמה מהם. WordPress רגיש לאקראיות; שני salts זהים מצמצמים אנטרופיה ומקלים על מתקפת הצפנה תיאורטית. השתמש תמיד בכלי ה-API של wordpress.org. טעות שנייה: לעצור באמצע ההחלפה – לעדכן רק 4 מתוך 8 salts. זה משאיר את האתר במצב לא עקבי. הקפד להחליף את כל ה-8 בבת אחת. טעות שלישית: לסבב salts בלי להזהיר את הצוות. כל המנהלים יתנתקו מיידית; אם מישהו עורך פוסט באותו רגע, יאבד את העריכה. הודע מראש או בצע מחוץ לשעות עבודה. טעות רביעית: לסמוך רק על salts בלי לטפל בסיבה השורשית. אם נחשד פריצה, salts הם רק שלב אחד מתוך כמה: גם החלפת סיסמאות ב-DB, רענון תוספים, וסריקה אנטי-מאלוור.
בדיקה לאחר תיקון
פתח את wp-config.php שוב וודא שכל 8 השורות עודכנו עם מחרוזות באורך 64 תווים, ושאין כפילויות. גלוש לאתר במצב גלישה פרטית – צריך להיות חייב להתחבר מחדש. לאחר ההתחברות, פתח DevTools > Application > Cookies וצפה בערך החדש של עוגיית wordpress_logged_in_* – הוא חייב להיות שונה מערך הקודם.