הבלוג שלנו

10 טיפים לשיפור אבטחת אתר הוורדפרס שלך

'Gilad Sasson'
8 ביוני 2017
זמן קריאה: 5 דקות

היי לכולם, אני יהודה, מפתח WEB בחברת נקודה. אנסה להעביר לכם 10 נקודות על כיצד לאבטח את אתר הוורדפרס שלכם בצורה הטובה ביותר!

וורדפרס היא מערכת ניהול התוכן הנפוצה בעולם, וככזו די ברור שהיא תהיה מטרה לתופעות שליליות כמו: פריצות, תרמיות פישינג, ספאם ועוד…
במאמר הזה אנסה להסביר לכם איך לאבטח את אתר הוורדפרס שלכם בצורה הטובה ביותר. חלק מההצעות פה מותאמות לשרת WEB מסוג APACHE שהוא הכי נפוץ היום בחברות האחסון.

אבטחת אתרים-01

איך לאבטח אתר וורדפרס?

1. לעדכן את האתר לגרסת הוורדפרס העדכנית ביותר

גם קוד טוב מתיישן ומצריך תחזוקה, אי אפשר להתחמק מהגורל הזה או לחסוך עליו כסף. לכן, מומלץ תמיד לוודא שגרסת הוורדפרס שברשותכם, התוספים והתבנית יהיו מעודכנים לגרסה האחרונה והעדכנית ביותר. עדכון גרסת הוורדפרס תחסוך לכם את רוב הבעיות באבטחת האתר.

2. סיסמאות והרשאות

ההתקפה הכי נפוצה היום על אתרי אינטרנט היא Brute Force Attack, והיא נעשית על ההתחברות לאתר באמצעות הרצה של מאגר סיסמאות מוכן מראש. כדי לא להצטרף למאגר הקרבנות של ההתקפה, יש להימנע מסיסמאות פשוטות ונפוצות שיכולות להיפרץ בקלות. אמנם אפשר להבין את הצורך לבחור בסיסמה פשוטה וזכירה, אבל כדאי לחשוב על ההשלכות ולהשקיע בסיסמה מורכבת ולא צפויה.
אם אתם מנהלים אתר שיש בו מספר משתמשים המוגדרים כמנהלים, מומלץ לתת הרשאה אישית לכל משתמש בהתאם לתפקידו  ולא לתת הרשאית Admin כללית לכל המשתמשים. כך ייחסכו מכם כאבי ראש.

3. לבחור חברת אחסון אמינה

בעקבות הגידול במספר אתרי האינטרנט די מתבקש שתהיה גם פריחה משמעותית במספר חברות האחסון בשוק. אחסון אתר אינו עניין מסובך, אבל חשוב להגדיר את הסביבה האופטימלית עבורו ולאבטח אותו.

כמה טיפים קטנים לבחירת חברת אחסון:

  • גלשו לכתובת האתר שלכם באמצעות השורה הזאת: https://your-domain.co.il/wp-content/uploads. אם אתם רואים רשימת קבצים, בחרו בחברת אחסון אחרת.
  • אם יש לכם ממשק cPanel, חפשו את האייקון Mod Security, אם לא מצאתם, התקשרו לאחסון ובקשו מהם שיאפשרו. אם גם זה לא עזר, ותרו על שירותי החברה.

4. שגיאות התחברות

ברירת המחדל של וורדפרס היא ליידע כל משתמש לגבי מצבו בתהליך ההתחברות. לדוגמה, אם אנסה להתחבר לאתר בשם המשתמש admin ובסיסמה כלשהי, תתקבל ההודעה הבאה:

שגיאה: הסיסמה שהוזנה עבור המשתמש admin אינה נכונה.
שחזור סיסמה

כך, וורדפרס למעשה הודיעה לי שהמשתמש admin באמת קיים במערכת. מכאן אני יכול רק לפתוח בהתקפה על המשתמש ולנסות סיסמאות שוונות.
פתרון:
הוספה של הקוד הבא לקובץ functions.php בתבנית האתר:

function disable_login_errors(){
  return 'Login error!';
}
add_filter( 'login_errors', 'disable_login_errors' );

5. ביטול התממשקות חיצונית

וורדפרס מאפשרת לעבוד עם הנתונים השמורים בבסיס הנתונים באמצעות API (התממשקות דרך קוד).
יש לזה יתרונות רבים, אבל גם כמה חסרונות; בעזרת הממשק הזה ניתן לבצע התקפות, השתלת קוד זדוני ועוד.
לוורדפרס יש שני סוגי התממשקויות, ואם אין לכם אפליקציה או שירות חיצוני ששולף נתונים דרכם אפשר לנטרל אותם:

XML-RPC

add_filter('xmlrpc_enabled', '__return_false');

JSON-API

function disable_rest_access() {
	return new WP_Error( 'disable_rest_access', __( 'The REST API is disabled' ) );
}
add_filter( 'rest_authentication_errors', 'disable_rest_access' );

6. בטלו את אפשרות העריכה בלוח הבקרה

לפי דעתי האפשרות הזאת משדרגת מאוד את האבטחה של האתר שלכם. כדי למנוע עריכה זדונית או אפילו לא מכוונת, מומלץ לערוך את הקבצים בצורה מסודרת באמצעות עורך ייעודי. לשם כך, יש להוסיף את הקוד הבא ל- wp-config.php

define( 'DISALLOW_FILE_EDIT', true );

7. הסתרה של גרסת וורדפרס

אפשר לדעת בקלות מהי הגרסה של אתר הוורדפרס באמצעות צפייה בקוד המקור של האתר. צפייה במספר הגרסה הנוכחי תאפשר להאקר לדעת אם יש פירצה זמינה לאותה גרסה, או חולשות אחרות שהוא יכול לנצל.
הכניסו את הקוד הבא ב- functions.php בתבנית האתר כדי להסתיר את מספר הגרסה:

function remove_wp_version_query( $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', 'remove_wp_version_query' );
add_filter( 'style_loader_src', 'remove_wp_version_query' );

function remove_version() {
	return '';
}
add_filter('the_generator', 'remove_version');

8. מנעו הרצה קובצי PHP בתיקיות

עוד אפשרות מצוינת להקשחה של אבטחת האתר היא מניעה של הרצת קובצי PHP בתיקיות שאין בהן צורך והן עלולות לשמש יעד לפריצות, לרוב בתיקיית uploads (כמו במקרה של Gravity Forms).
העתיקו את הקוד הבא לעורך טקסט ושמרו כקובץ .htaccess, את הקובץ יש לעלות לתיקיית /wp-content/uploads.

<Files *.php>
deny from all
</Files>

9. מנעו התקפה אוטומטית על טופס הרשמה, התחברות וספאם

זיהוי תמונה אבל לא לגמרי!
לפני חצי שנה בערך הוציאה גוגל שדרוג למערכת ה-CAPTCHA שנקרא Invisible Recaptcha.
הכלי הזה למעשה מפריד בין בוטים לאנשים באמצעות אלגוריתם מיוחד המבוסס על הערכת סיכונים (תרגום: הם לא מפרטים יותר מדי).
משתמש רגיל לא יראה את ה-CAPTCHA ולא יצטרך לאמת את עצמו. במקרה הטוב, הוא רק יצטרך לסמן וי בתיבה המבררת אם הוא רובוט או בן אדם.
בוורדפרס יש תוסף מצוין לפיתוח החדש, והוא כלול המון אינטגרציות לתוספים חיצוניים כמו: הרשמה, התחברות, תגובות, Contact form 7, Gravity Forms ועוד …
להורדה: https://wordpress.org/plugins/invisible-recaptcha/

10. התקינו תוסף אבטחה – iThemes Security

iThemes Security הוא לפי דעתי תוסף האבטחה הכי טובה להקשחת אתרי וורדפרס, והוא מכיל מספר רב של אפשרויות להקשחת אתר הוורדפרס שלכם, חלק מהם כבר ציינתי פה:

  • הסרת גירסת וורדפרס
  • שינוי שם משתמש admin
  • שינוי מקדם ברירת מחדל בטבלאות בבסיס הנתונים
  • שינוי קישור ההתחברות הרגיל לאיזה קישור שתבחרו
  • חסימה של התקפת brute force
  • ועוד…

להורדה: https://wordpress.org/plugins/better-wp-security/

צרו אתנו קשר למידע נוסף על ניהול וקידום אתרי וורדפרס.