בניית אתרים

מה שבטוח - לא פתוח

27/01/2010 00:00:00
הגדל טקסטיםהקטן טקסטים
הדפס מאמר
בניית אתרים בקוד פתוח או סגור?
היו ימים שקוד פתוח היה נחלתם הבלעדית של 'חנונים' רומנטיקנים, המתרפקים על חזון הקומונה הוירטואלית.
אין ספק, שיתופיות באינטרנט והמילה 'פתוח' מחממת לרבים את הלב. אכן, היו ימים...
כיום, יודעים רבים כי צמד המילים 'קוד פתוח' והשימוש בו, הינו בעיקר נחלתם של אלו המבקשים לחסוך מספר שקלים בתהליך בניית אתרים עליהם מושתתים עסקיהם המקוונים.
אכן, ובכך יש להודות: השימוש בקוד פתוח משמעותו חסכון כספי מסוים לטווח הקצר של בניית אתרים. וכי למה להשקיע עשרות אלפי שקלים באתר אינטרנט מקצועי ומאובטח היטב, כשאפשר להקימו במספר לחיצות כפתור?
והאפשריות רבות ומגוונות: Wordpress, Joomla, Drupal, Magento ואחרות.
נשמע מבטיח? לא תמיד!

מה הם 'קוד פתוח' ו'קוד סגור', מה יתרונותיו וחסרונותיו של כל אחד מהם עבור בניית אתרים 

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

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

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

ואם תשאל עצמך, איך מתבצעת הפריצה, הרי לפניך התשובה.
ברגע שמתגלה פרצה בספרייה מסוימת, כל מודול, המשתמש בספריה זו, 'ירש' את הפרצה, גם אם היה תקין ולפיכך יהווה סיכון אבטחתי לאתר כולו. פורצים מחפשים ב- google אילו אתרים משתמשים באותה הספרייה וכך יכולים לדעת בקלות באיזו צורה יוכלו לתקוף את האתר. סוג הפורצים נפוץ בעולם הינם "ילדי הסקריפט" (http://en.wikipedia.org/wiki/Script_kiddie). פורצים אלו הם בד"כ נערים שאינם תוכניתנים, אלא פשוט עוקבים אחר אתרי אבטחה ובונים על כך שרוב האתרים אינם מתעדכנים באופן מיידי בהגנות הנבנות על מנת לחסום את הפרצות באבטחה.


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

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

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