Github Copilot - 倫理考量



GitHub Copilot 接受了公共儲存庫(包括開源專案)的訓練,這些儲存庫可能受各種許可證(如 MIT、GPL、Apache 等)的約束。如果 Copilot 生成的程式碼與具有特定許可條款的開原始碼相似或源自開原始碼,您可能需要同意這些條款。例如,某些許可證要求署名,這意味著您需要在專案中註明原始作者。

如果您在商業專案中使用 Copilot 生成的程式碼而未驗證其來源,如果原始作者聲稱擁有所有權,您可能會面臨法律問題。

GitHub Copilot 法律問題

  • 所有權:由於 Copilot 接受了公開可用程式碼的訓練,因此生成的程式碼可能類似於現有作品。這引發了關於誰擁有生成程式碼的問題,尤其是在生成的程式碼與受版權保護的材料相似的情況下。
  • 版權:Copilot 可能會建議已經在現有專案中使用的程式碼,如果未正確署名或授權原始作者的作品,則可能導致侵犯版權。開發人員在使用 Copilot 時應謹慎,以避免與智慧財產權相關的法律問題。
  • 安全性:Copilot 可能會建議看起來功能正常的程式碼,但其中包含隱藏的安全漏洞。由於 AI 並不完全理解上下文,因此開發人員必須審查程式碼以查詢潛在的缺陷,例如 SQL 注入風險、未加密的資料處理或使用過時的庫。

一些開發人員報告稱,Copilot 生成的程式碼與他們過去編寫的程式碼相似。這引發了對 Copilot 生成的程式碼原創性的擔憂。目前還沒有任何工具可以驗證 Copilot 生成的程式碼的真實性。

GitHub 的立場是什麼?

GitHub 宣告 Copilot 基於它使用文字生成轉換器學習的模式生成新的程式碼,這意味著它不會直接從任何來源複製程式碼。但是,在某些情況下,生成的程式碼可能看起來與現有程式碼相似。

GitHub 建議開發人員審查和修改 Copilot 生成的程式碼,以確保它滿足其專案的要求並遵循最佳實踐。他們還建議開發人員尊重智慧財產權、遵守許可條款並進行徹底的程式碼審查以避免法律問題。

如何從 Copilot 生成安全的程式碼?

以下是一些從 Copilot 生成安全程式碼的技巧

  • 審查程式碼建議:始終審查 Copilot 建議的程式碼。在整合程式碼之前,確保它遵循最佳實踐並符合專案的需要。
  • 修改程式碼:對生成的程式碼進行必要的修改,以確保其安全、高效並符合專案的編碼標準。
  • 使用可信賴的庫:在可能的情況下,優先使用完善的庫,而不是僅僅依賴 AI 生成的程式碼。這可以最大程度地降低安全漏洞或錯誤的風險。
  • 檢查安全漏洞:始終審查 Copilot 的程式碼是否存在潛在的安全風險,例如 SQL 注入、XSS 漏洞或弱加密模式。進行徹底的測試和程式碼審查。
  • 稽核與現有程式碼的相似性:如果生成的程式碼看起來與現有專案或專有解決方案過於相似,請驗證其來源以避免侵犯版權。
  • 啟用私有模式:在處理敏感專案時,您可以停用 Copilot 或在私有模式下使用它,以避免洩露機密程式碼。
廣告