ההפתעה המסתתרת ברישיון של ריאקט

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

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

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

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

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

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

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

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

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

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

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

פוסטים נוספים שכדאי לקרוא

בינה מלאכותית

להריץ ממשק של open-webui על הרספברי פיי

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

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

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

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

גלילה לראש העמוד