אבטחת אתרי וורדפרס – אופטימיזציה וטיפים

חיזוק אבטחת אתרי וורדפרס (Hardening WordPress)

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

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

פגיעות בוורדפרס – WordPress Vulnerabilities

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

אז היכן בעצם אתם הכי פגיעים כשמדובר באתר וורדפרס? על פי WP Scan, כ – 52% מכלל הפגיעות שדווחו היה מתוספים של וורדפרס. קבצי הליבה של וורדפרס אחראים ל 37% ותבניות וורדפרס אחראיות ל 11% מכלל הפגיעות. נתון זה אושר גם על ידי Wordfence אשר דיווחו כי 55.9% מכלל הפגיעות מגיעות מתוספי וורדפרס.

אבטחה באתרי וורדפרס

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

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

1. וודאו כי וורדפרס והתוספים שלה תמיד מעודכנים

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

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

2. השתמשו בשמות משתמש וסיסמאות חזקות

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

הצטרפו לרשימת התפוצה!

3. השתמשו בתוסף אבטחה

ישנם לא מעט תוספי אבטחה לוורדפרס אשר ״יינעלו״ את האתר שלכם ויעזרו לכם למנוע מתקפות Brute-Force. תוספים אלו יאפשר לכם לחסום רשתות זדוניות, לחסום פירצות אבטחה, לחייב בחירת סיסמאות חזקות, לסרוק שינויים בקבצי הליבה של וורדפרס, לראות אילו קבצים השתנו, להטמיע חומת אש (Firewall), לעקוב אחר שינויי DNS ועוד…

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

4. חסמו בוטים שאינם רצויים (Block Bad Bots)

ישנם תמיד בוטים, תולעים ושטויות אחרות אשר מכות את אתר הוורדפרס שלכם, גונבות רוחב פס ומשבשות את האנליטיקות של האתר שלכם. תוכלו למצוא רשימה של מרביתם בקישור הבא. רוב תוספי האבטחה המוזכרים מעלה עושים עבודה מצויינת בנושא זה. עם זאת, לפעמים תרצו לעשות זאת בעצמכם ברמת השרת. אם תרצו לחסום מספר "User-Agents" במקביל, תוכלו לעשות זאת על ידי הוספת הקוד הבא לקובץ .htaccess:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(agent1|Wget|Catall Spider).*$ [NC]
RewriteRule .* - [F,L]

הנה קוד שניתן להוסיף ל .htaccess על מנת לחסום הרבה מאותם בוטים לא רצויים:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

5. תמיד השתמשו בחיבור מאובטח

לא משנה מהיכן אתם מתחברים לשרת שלכם, אתם תמיד צריכים לוודא כי אתם כי החיבור בו אתם משתמשים הוא חיבור מאובטח. רצוי כי תשתמשו בהצפנת SFTP אם חברת האחסון שלכם מאפשרת זאת (או SSH). חברת האחסון בה האתר שלכם מאוחסן צריכה תמיד להיות מאובטחת, כלומר, להשתמש בגירסאות תומכות אך מעודכנות של PHP ו MySQL, לבודד חשבונות ולהשתמש בחומות אש. המנעו מחברות אחסון זולות ושיתופיות מכיוון ואתם יכולים להתקל בבעיות של שרתים עמוסים יתר על המידה וחלוקה של IP's.

6. בדקו הרשאות של תיקיות וקבצים

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

לפי וורדפרס, ההרשאות הבאות הן הנכונות לאתר הוורדפרס שלכם:

  • כל הספריות צריכות להיות 755 או 750
  • כל הקבצים צריכים להיות 644 או 640
  • הקובץ wp-config.php צריך להיות 600

בדקו את המאמר הבא ב WordPress.org על מנת לקבל עוד מידע כיצג לשנות את ההרשאות. במידה ואינכם בטוחים כי ההרשאות של האתר שלכם נכונות או כיצד לשנות אותן, בקשו מחברת האחסון שלכם לבדוק אותן בשבילכם.

7. אבטחת את מסד הנתונים

מעבר להרשאות הקבצים שהזכרנו בסעיף הקודם, ניתן ורצוי גם לחזק את האבטחה על מסד הנתונים של אתר הוורדפרס שלכם. פעולה אחת שניתן לעשות היא לשנות את קידומת הטבלאות במסד הנתונים (table prefix). כברירת מחדל וורדפרס משתמשת בקיומת wp_. אם תשנו זאת למשהו כגון sa4vv_ יהיה לבוטים הרבה יותר קשה לנחש זאת.

ניתן לשנות את קידומת הטבלאות במסך ההתקנה של וורדפרס.

אבטחת מסד הנתונים בוורדפרס

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

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

8. כבו הודעות שגיאה ב PHP

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

ניתן לעשות זאת על ידי הוספת הקוד הבא לקובץ wp-config.php:

ini_set('display_errors',0);
error_reporting(E_ALL|E_STRICT);

אם הקוד הנ״ל אינו עובד, דברו עם חברת האחסון שלכם ובקשו מהם לבטל זאת בשבילכם.

9. חסמו XSS

באפשרותכם להוסיף קוד זה בכדי לחסום מספר סוגים של התקפות מסוג (XSS (cross-site scripting. בכדי להגן על עצמכם מ״הזרקות״ סקריפטים (scripts injections) ונסיונות לשחק עם המשתנה הגלובלי של PHP, הוסיפו את הקוד הבא לקובץ .htaccess:


    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    RewriteRule .* index.php [F,L]

10. הסתירו את גירסת הוורדפרס שלכם

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

הסתירו את גירסת הוורדפרס

על מנת להסתיר את גירסת הוורדפרס הוסיפו את הקוד הבא לקובץ functions.php:

remove_action('wp_head', 'wp_generator');

ניתן לחילופין להשתמש בקוד הבא:

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

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

11. אבטחו את הקובץ wp-config.php

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

<Files wp-config.php>
order allow,deny
deny from all
</Files>

עוד מידע על אופטימיזציה לקובץ wp-config.php בוורדפרס בקישור המצורף.

12. בטלו את הגישה לתיקיית wp-includes

עוד בעיה ידועה היא שבעלי אתרים נוטים להשאיר את הגישה לתיקיית http://www.domain.co.il/wp-includes/ פתוחה. האקרים יכולים לנצל זאת על ידי בדיקה של הקבצים בתיקייה זו ואף לגלות את גירסת הוורדפרס שלכם. הגישה לתיקייה זו צריכה להחזיר הודעת שגיאה 403.

על מנת למנוע גישה לתיקייה זו הוסיפו את הקוד הבא לקובץ .htaccess:

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

13. בטלו XML-RPC

מגירסת וורדפרס 3.5 ומעלה, אפשרות XML-RPC פתוחה כברירת מחדל. זו מאפשרת לכם להתחבר מרחוק לאתר הוורדפרס שלכם באמצעים שונים. כמו כן היא מאפשרת trackbacks & pingbacks באתר שלכם. לצערינו, האקרים יודעים לנצל זאת על מנת לבצע מתקפות DDoS.

אתם יכולים לבטל XML-RPX על ידי שימוש בתוסף פשוט הנקרא Disable XML-RPC או על ידי הוספת השורות הבאות לקבוץ .htaccess:

## block any attempted XML-RPC requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

14. בטלו JSON Rest API

הפונקציונליות של JSON Rest API הוצגה לראשונה בגירסת וורדפרס 4.4. זאת בשימוש על ידי לא מעט מפתחי תוספים על מנת לקבל מידע באמצעות בקשות GET. נורא נחמד, אך אפשרות זו פותחת את האתר שלכם למתקפות DDoS וצרות אחרות. ניתן בפשטות לבטל פונקציונליות זו על הוספת הקוד הבא לקובץ functions.php:

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

add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

שימו לב – פילטרים אלו כבר אינם עובדים מגירסת וורדפרס 4.7 ומעלה. אני מציע למי שבעל גירסאות אלו להשתמש בתוסף המבטל את הפונקציונליות הזו ושמו Disable REST API.

15. בטלו את אפשרות עריכת הקבצים מלוח הבקרה של וורדפרס

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

ביטול אפשרות עריכת קבצים בלוח הבקרה של וורדפרס

על מנת לבטל את האפשרות הוסיפו את השורה הבאה לקובץ wp-config.php :

define( 'DISALLOW_FILE_EDIT', true );

16. מנעו גישה לתיקיות האתר

רוב אתרי הוורדפרס אינם מבטלים האפשרות לצפייה בתיקיות האתר. זה כולל את תיקיית התוספים ותיקיית ה media. מאחר ואינכם רוצים כי לאנשים תהיה אפשרות לדפדף בתיקיות האתר בשרת הוסיפו את השורה הבאה לקובץ .htaccess הנמצא בספרייה הראשית של האתר:

Options All -Indexes

בנוסף, וודאו כי ישנם קבצי index.php ריקים בתיקיית wp-content/themes ובתיקיית wp-content/plugins על מנת להסתיר את התוכן של תיקיות אלו.

17. בטלו רמזים הקשורים להתחברות משתמשים לאתר

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

function no_wordpress_errors(){
  return 'הנתונים שגויים, אנא נסו שנית';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

18. הגבילו את מספר נסיונות ההתחברות

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

ישנם לא מעט תוספים המאפשרים להגביל את מספר ניסיונות ההתחברות, אחד הידועים הינו Limit Login Attempts. כמו כן, רוב תוספי האבטחה המוזכרים מעלה מאפשרים לעשות זאת.

19. שנו את ה Login URL ללוח הבקרה של וורדפרס

בכדי להמנע מהתקפות Brute Force, יהיה נכון לשנות את כתובת הגישה לממשק הניהול של וורדפרס. זאת מכיוון והאקרים – שיודעים כמו כולנו כי הגישה לממשק הניהול הינו על ידי הכתובת wp-admin, מנסים כל מיני קומבינציות של שמות משתמש וסיסמאות על מנת לנסות ולפרוץ לאתר הוורדפרס שלכם.

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

20. מנעו קישור חיצוני לתמונות שלכם (hotlinking)

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

# Prevents image hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC]
RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

במידה ואתם משתמשים ב cPanel דעו כי ישנה אפשרות לחסום hotlinking דרכו…

21. הסתירו את שם המשתמש שלכם

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

למזלנו ניתן לפתור זאת בקלות על ידי הוספת מעט קוד לאתר. קוד זה יגרום לכך שבמידה ותנסו לגלות את שם המשתמש על ידי הוספת ?author=1 בסוף ה URL, זה לא יציג את שם המשתמש שלכם אלא יבצע הפנייה לדף הבית של אתר הוורדפרס שלכם.

הוסיפו את הקוד הבא לקובץ functions.php:

<?php
/* prevents hackers from getting your username by using ?author=1 at the end of your domain url */
add_action('template_redirect', savvy_template_redirect);

function savvy_template_redirect() {
    if (is_author()) {
        wp_redirect( home_url() ); exit;
    }
}
?>

22. הזהרו מתוספים

שימו לב לאילו תוספים אתם מתקינים באתר הוורדפרס שלכם. תוספים ״חלשים״ יכולים להיות בעלי באגים או קוד לא נכון שבאמצעותו ניתן לבצע SQL Injections או פעילות אחרת שיכולה לפגוע באתר שלכם או בדירוג שלכם במנועי החיפוש.

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

23. ודאו כי mod_security מופעל

המודול mod_security הוא מודול אבטחה מאד שימושי ל apache שפותח על ידי בחור בשם Ivan Ristic, מחבר הספר Apache Security. סביר להניח כי מודול זה מופעל אצלכם כברירת מחדל במידה והנכם משתמשים בשרת שיתופי. לא נרחיב על מודול זה אך חשבתי כי נכון לציין אותו. דעו כי ישנה אפשרות להפעיל ולכבות מודול זה בצורה פשוטה במידה ואתם משתמשים ב cPanel:

mod-security-cpanel

24. הוסיפו תעודת SSL להצפנת נתונים

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

בהרבה מקרים האופציה לתעודת SSL היא אפשרות חינמית המגיעה עם הרכישה  של חבילת האחסון ובד״כ התעודה היא של LetsEncyipt.

תעודת SSL משפיעה גם על הדירוג של אתר הוורדפרס שלכם בגוגל ומדרגת אתרים בעלי תעודת SSL גבוה יותר מאשר אתרים ללא תעודה. דירוג גבוה יותר = יותר תנועה לאתר שלכם… הנה מאמר שכתבתי המדבר בהרחבה על תעודות SSL והאם יש צורך בהן באתרי וורדפרס.

תעודת SSL באה יחד עם המעבר החשוב לפרוטוקול HTTPS שלו יתרונות בפני עצמו מעבר לאבטחת התקשורת אותה הזכרנו קודם לכן.

25. בחרו את חברת האחסון הכי יקרה שאתם יכולים להרשות לעצמכם

אתם יכולים לבצע כל הטריקים הכי עדכניים בנושא אבטחה, אך אם אין מאחוריכם חברת אחסון טובה, המאמצים שלכם לא יעזרו יותר מדי. לפי דו״ח שפורסם על ידי WP White Security, כ – 41% מכל אתרי הוורדפרס נפרצים בעקבות פירצות אבטחה של חברת האחסון עצמה.

אז אם אתם משתמשים בשרת שיתופי, וודאו עם חברת האיחסון כי ישנו בידוד לחשבון (Account Isolation). אפשרות זאת תמנע מאתר נגוע אחרת הקיים על השרת להשפיע על אתר הוורדפרס שלכם, מדוע עליכם לסבול מטעויות של אחרים?

אך אני חושב שרעיון הרבה יותר טוב יהיה לעבוד עם חברת אחסון ייעודית לוורדפרס. השרתי אחסון מנוהלים, המתמחים בוורדפרס, תהיה סבירות גבוהה יותר למצוא חומת אש (Firewall) מותאם לוורדפרס, גירסאות PHP ו MySQL עדכניות, סריקה שגרתית של נוזקות (Malewares), שרת שמותאם ייעודית לוורדפרס‎ וצוות של אנשי תמיכה שמכירים את וורדפרס על בוריה.

לסיכום

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

  • שמרו על המחשב שלכם נקי מוירוסים ועדכנו את תוכנת האנטי וירוס שלכם.
  • תמיד שמרו גיבויים (של קבצי האתר ומסד הנתונים).
  • תמיד השתמשו בסיסמאות חזקות ושנו אותם אחת לתקופה ואל תשמרו סיסמאות ל FTP וכדומה בדפדפן שלכם.
  • כשניתן, ובמידה ואתם משתמשים בתבניות, השתדלו להצמד לתבניות premium בעל דירוג גבוה.

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

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

רועי יוסף
רועי יוסף

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

{ 13 תגובות… הוסף אחת }
  • רוב 20 באוקטובר 2016, 12:24

    התוסף All In One WP Security & Firewall נחשב לטוב?

  • עופר 19 ביוני 2017, 14:58

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

    האם לדעתך זה יכול לעזור ? האם תוכל לסייע לי ולמי שעוד נפגע בשלבים איך לעשות זאת דרך ה DIRECT ADMIN ? חיפשתי בגוגל וכל המדריכים הם על CPANEL..

    תודה מראש,
    עופר.

  • סלבה איסקוב 31 במרץ 2018, 12:20

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

  • אלחנן 22 במאי 2018, 10:15

    האם Wordfence מטפל בחלק מהעניינים האלה בעצמו?

השאירו תגובה

פעימות
woocommerce-store-wordpress
הקמת חנות וירטואלית בוורדפרס באמצעות WooCommerce

עם מעל למיליון התקנות אקטיביות, ציון של 4.5 ב Wordpress.org וצבא שלם של בעלי חנויות...