五種預防開源許可違規的方法
開發人員可以通過將開源軟件集成到其代碼庫中,節省時間并避免重復發明輪子。然而,這也帶來了嚴重的許可侵權風險。你必須遵守適用于重新使用的開源代碼的眾多開源許可證之一。如果你不這樣做,你(或你所在公司)有可能因違反開源許可證條款而被起訴。即使這種訴訟并不普遍發生,它們確實存在。
1、熟悉開源許可證
了解開源許可證是防止開源許可侵權問題中最重要的一步。很容易認為所有開源許可證都施加相同的條件,或者它們都基本要求源代碼的持續可用性。實際上,有數十種不同的開源許可證,它們都有著非常不同的條款。簡單地認為只要你從一個開源項目獲取代碼,你可以隨意使用它并保持源代碼可訪問,這是一個嚴重的錯誤。幾個開源許可證的一個典型但經常被忽視的條件可能是需要向原始作者提供致謝。
2、記錄你使用的開源內容
建立一個標準化的方法來記錄你使用開源代碼的情況是一個優秀的做法。導入模塊或從 GitHub 粘貼代碼并不難。但如果你不追蹤代碼來自何處以及使用了何種許可證,你可能會忘記在代碼庫中如何以及在哪里集成開源內容。此外,如果你在借用代碼時無法證明自己遵守了有效的許可條件,那么在開源許可證發生變化時可能會產生問題??紤]在文檔維基(如果有的話)中添加一個頁面,列出你使用的開源代碼,以避免出現這個問題。每當你包含開源組件或依賴時,至少在你自己的源代碼中添加注釋。
3、避免使用未經授權的開源組件
有時,你可能會偶然發現一個隱藏的 GitHub 存儲庫或其他源代碼托管位置,其中包含你希望使用的代碼,但沒有提到任何許可指南。你可能會認為代碼的創建者希望讓其成為開源代碼,并且你可以根據自己的意愿使用它。但這是一個危險的假設。開發人員可能會后續對代碼設置特定的許可條件,并要求你遵守這些條件,這可能導致未來產生許可侵權的指控。除非你有非常充分的理由,否則避免使用缺乏明確許可限制的模糊代碼。
4、創建自己的開源代碼
將你自己的軟件完全開源是減少與開源許可相關風險的一種方法。這意味著你將自動遵守任何要求保留派生源代碼的開源許可條件。然而,請記住,僅僅開放你自己的代碼并不能確保完全遵守許可證。你仍然需要努力確保你遵守每個許可證的規定,因為適用于你借用的代碼的許可證可能與你選擇的開源許可證不同。然而,你無需擔心與源代碼共享相關的任何條款。
5、自動檢測開源組件
雖然在代碼庫內手動跟蹤你如何使用開源是很好的做法,但通過使用能夠自動識別開源組件和依賴項的軟件,你可以降低出錯的可能性。在這里,我們應該考慮兩種不同類型的工具。一種是源代碼組成分析(SCA)軟件,它會自動掃描源代碼并識別從值得信任的外部來源獲取的元素。另一種是軟件供應鏈管理解決方案,除其他功能外,還支持查找和監控應用程序堆棧中的任何開源依賴項。