מה לבקש מבוני אתרים?

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

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

להלן ההמלצות:

  • לעבוד תמיד עם פלטפורמות ידועות ומוכרות ולא להתפתות לכל מיני פלטפורמות נישה שהיום הם כאן ומחר אף אחד לא יודע מה קורה איתן. הפלטפורמות המוכרות הן: WordPress, Joomla, Drupal. הפלטפורמות הנ”ל מפותחות ומתעדכנות תדיר, ובעיות אבטחה בהן נסגרות במהירות, והן מספיק גמישות לתת פתרונות מבוססי תוכן החל מאתר קטן ועד לבלוגים ענקיים (CNN לדוגמא משתמשים בוורדפרס לבלוגים שלהם).
  • להשתמש רק בגרסאות האחרונות היציבותשל הפלטפורמה. לא מעט בוני אתרים מנסים לחסוך זמן בכך שהם מעתיקים ממערכת אחרת שהם בנו, וכך הלקוח יקבל גירסה ישנה עם חורי אבטחה שינוצלו על ידי כל מיני ילדים ופורצים למיניהם. נכון להיום הגרסאות האחרונות של הפלטפורמות הנ”ל הן:
    • ב-Joomla נכון לכתיבת שורות אלו הגירסה היציבה האחרונה היא 2.5.7
    • ב-Wordpress נכון לכתיבת שורות אלו הגירסה היציבה האחרונה היא: 3.4.2
    • ב-Drupal נכון לכתיבת שורות אלו הגירסה היציבה האחרונה היא: 7.16
  • יש לציין בהסכם בין הלקוח לבוני האתר כי אסור שבוני האתר ישנה קוד בפלטפורמה. לצערי רבים מבוני האתרים מנסים “לחתוך פינות” ולשנות קוד בתוך הפלטפורמה. הבעיה? שדרוג גירסה (דבר שצריך לבצע לפחות אחת לחודש או חודשיים) יגרום לאתר לא לעבוד. בונה האתר, אם יש לו צורך בשינוי, צריך לכתוב או להשתמש במודולים חיצוניים ש”מתלבשים” על הפלטפורמה. אותו הדבר לגבי עיצובים – אם יש צורך בשינוי בעיצוב, השינוי צריך להיות בקוד העיצוב בלבד ולא בפלטפורמה.
  • בכל הנוגע לעיצובים, ההמלצה שלי היא לרכוש עיצוב מאתרים בחו”לולשלם לבונה האתר על תרגום/”גיור” העיצוב לעברית/ימין-שמאל. הסיבה לכך היא שלצערי לא מעט מבוני אתרים משתמשים בעיצובים שהם השיגו בעבר (בין בצורה חוקית ובין שלא) ובאותם עיצובים יש חורי אבטחה. כאשר רוכשים עיצוב מאתרים גדולים בחו”ל (בד”כ הסכום הוא בסביבות כמה עשרות דולרים), מקבלים חינם שנה של עדכונים לעיצוב, ובאתרים רבים, ניתן באותו מחיר לקבל מספר עיצובים, כך שאם אתם הלקוחות יש לכם מספר אתרים, תוכלו להוריד עיצוב שונה לכל אתר.
    • אם הזכרתי כבר עיצובים, כדאי לבחור עיצובים שתומכים בשפות נוספות (רבים מהעיצובים תומכים בכך, חלקם גם תומכים באתרים עם ימין-שמאל כמו עברית, ערבית, פרסית וכו’), כך שמתרגם העיצוב יצטרך לכתוב קובץ תרגום פשוט, וקובץ CSS למיצוב/עיצוב אלמנטים. במקרה ויהיה צורך בעדכון, ניתן יהיה לעדכן בקלות ויהיה צורך רק בהחלפת קובץ CSS לאחר העדכון.
  • בכל הקשור לחנויות, תוכנת OsCommerce כבר מזמן “מתה” (גירסה 2.3 לא עודכנה זמן רב וקיימות לה פריצות רבות, גירסה 3.0 נמצאת בפיתוח זמן רב והם לא ממליצים להכניס אותה לשימוש בחנויות פעילות או חדשות). יש פלטפורמה בשם Magnto בגירסה חופשית או מסחרית, אולם כיום ישנם תוספים רבים שיודעים להתלבש על הפלטפורמות שהזכרתי לעיל שנותנות פונקציונאליות זהה. לא מומלץ להשתמש בפתרונות קנייניים שבונה האתר כתב לדוגמא, הואיל ושימוש בפתרון כזה “כולא” אותך עם הפתרון הנ”ל ללא אפשרות לבחור פתרון אחר.
  • הסכם עדכונים: מומלץ לסגור בהסכם עם בונה האתרים כי אחת לחודש הוא יכנס לחשבונכם אצל הספק בו הינכם מאחסנים את האתר שלכם כדי לעדכן את כל מה שצריך עדכון: פלטפורמה, תוספים/מודולים,חבילת עיצוב. ללא הסכם כזה, אתם חשופים לפריצות שיתגלו בהמשך הדרך ולהפסד לקוחות והכנסות אם האתר יפרץ (שחזור של הספק אינו מהווה פתרון, ושום ספק אינו מקבל על עצמו לבצע עדכונים אלו ללקוח).
  • בחרו רק בונה אתרים שנותן להם באחריות אבטחה: ב-99% מהמקרים שאתר נפרץ, הבעיה אינה נמצאת בתשתית של הספק אלא ב-חורי אבטחה שהתגלו לאותה פלטפורמה שהאתר שלכם משתמש. לצערי לא מעט בוני אתרים מנסים להתחמק בכך שהם מאשימים את הספק וכל העולם, אך אינם בודקים את הקוד שלהם (או שהם אינם מבינים מספיק בקוד או באבטחת קוד). ראיתי מקרים בעבר שבונה אתרים המליץ ללקוחותיו להשתמש בכל מיני פתרונות CDN (טכנולוגיה שמפיצה את האתר שלך בשרתים אחרים בעולם הקרובים גיאוגרפית למשתמשים) כפתרון אבטחה, אולם פתרון זה ברוב המקרים כלל לא עוזר אם יש חורי אבטחה בקוד הפלטפורמה/מודולים/תוספים/עיצוב.

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

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

על אבטחת מידע ללקוחות בעלי אתרים

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

הבעיה עצמה מתחילה בשורש: רוב הלקוחות שמחפשים שיבנו להם אתרים לא מכירים את חוק הגנת הפרטיות, ידיעת החוק לגבי מאגרי מידע, הדברים שצריכים לעשות במקביל להקמת האתר מבחינת החוק (הידעתם שרישום מאגר המידע הוא חובה?), ונקודות שרבים לא חושבים עליהם, כמו העניין שאם נפרץ בסיס הנתונים שלכם ואיזה טורקי מחליט להעלות אותו לרשת, הלקוח בעל האתר חשוף לתביעות אזרחיות. אז בונה האתר לא מכיר את הדברים, בעל העסק לא מכיר (ובמקרים רבים לא ממש מעניין אותו), אבטחת מידע לא קיימת (כי בוני אתרים רבים פשוט לא מבינים מאומה בתחום ומעדיפים להאמין לכל מיני סוכני מכירות של ספקי אחסון שהספק "מוגן בפני פריצות" [אין חיה כזו]), ובסופו של דבר מגיע ילד משועמם (אותו "פורץ סעודי") ומרים את חברות האשראי וספקים על הרגליים, והוא בכלל מריץ תוכנה מוכנה כדי לפרוץ, כלומר מדובר במישהו שהוא אפילו לא פורץ מקצועי!

אז נתחיל לעשות סדר בבלאגן.

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

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

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

עוד מספר נקודות:

  1. ספק האחסון אינו יכול לעשות קסמים ולהפוך את כל הנתונים למוצפנים, זו אחריותו של המתכנת להצפין את הנתונים לפני ההכנסה/עריכת נתונים קיימים בין אם דרך שפת התכנות, ספריית תכנות או שימוש בפונקציות ששרת ה-SQL נותן (לדוגמא: encrypt ב-MySQL וכאן אפשר למצוא יותר מידע). האחריות של הספק היא לחסום כניסה לא מורשת ל-MySQL (לדוגמא) ברמה של כניסה מבחוץ ומניעת אפשרות למשתמש לראות את כל בסיסי הנתונים בתוך ה-DB עצמו (למעט מה ששייך לאותו חשבון). כמו כן הספק צריך לאסור באחסון משותף (לדוגמא) אפשרות להתחבר ל-SQL מבחוץ (גם כשבונה האתר מאוד אוהב כלי GUI חיצוניים ורוצה להתחבר ישירות לשרת איתם).
    ככלל, ספק צריך לברר עם הלקוח מה הוא מאחסן ולעדכן את החוזה בין הספק ללקוח לגבי אחריות על המידע, עניינים משפטיים וכו' (ואני ממליץ לקחת את שרותיו של עו"ד קלינגר לעניינים אלו, הוא מומחה בזה).
  2. בוני האתרים: מאחריותכם להסביר ללקוחות לגבי עניין האבטחת מידע ולבקש ממנו שימצא איש אבטחת מידע שישב איתכם ויבדוק את האתר וימליץ לכם מה לעשות מבחינת קוד, פרוצדורות וכו'. אם לקוח רוצה לחסוך או לשחק אותה "ראש קטן", אתם תהיו המטרה של רמו"ט על עבירת אי רישום מאגר מידע (ואני די בטוח שהם ימצאו עוד סעיפים להאשים אתכם), ואם מחר חס ושלום יפרצו לאותו אתר ויפיצו את המידע, הנפגעים יכולים לתבוע אותו תביעה אזרחית ותנחשו את מי הוא יגרור אל התביעה הזו..
    לכן אם לקוח מתעקש לא לקחת איש אבטחת מידע, ואתם לוקחים את הפרוייקט, תצטרכו להחתים את הלקוח על מסמך שהוא זה שמבקש אתר ללא אבטחת מידע כפי שנדרש בחוק והוא לוקח את כל האחריות עליו ופוטר אתכם מאחריות (לא יודע כמה מסמך כזה הוא לגטימי, עדיף להתייעץ עם עו"ד).
  3. לקוחות שיש להם אתרי חנויות או כל אתר שאוסף מידע מגולשים: בלי אבטחת מידע גם הרמו"ט יכולה לתבוע אתכם ואם נפרץ האתר שלכם – אלו שזלג המידע שלהם החוצה יכולים לתבוע אתכם תביעה אזרחית על אי-הגנה על מאגר מידע ושלל סעיפים נוספים, לכן מומלץ להשקיע את הסכומים הנוספים ברישום ובאבטחה על מנת להימנע מהכאב ראש הזה.

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

אחסון משותף וחשיבות תחזוקה שוטפת

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

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

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

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

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

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

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

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

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

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

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

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

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