2010-11-23 117 views
4

有沒有辦法保護自己免受Mercurial身份盜用?有沒有辦法保護自己免受Mercurial身份盜用?

的情況是,如果有人故意犯下的錯誤到使用其他開發者的名字與得到該人的目標代碼解僱或誤記。

有沒有辦法阻止這樣的事情發生或者是一個非的問題?

+1

也許一個有趣的閱讀(它沒有解決,雖然):http://greenspringdesign.com/blog/?p=11 – Lucero 2010-11-23 10:35:19

+0

如果我的工作與其他開發人員的變化和我們分享捆回來(不污染主要回購)。最後,我可能會用他的名字來推動提交,但這將是完全合法的。 – robert 2010-11-23 10:54:55

+0

@robert,exaclty這是DVCS的重點 - 任何人都可以推送可能包含其他人所做更改的變更集。因此,您需要驗證您是否信任將要推送的提交,並且可以通過對提交使用加密簽名(類似於簽署電子郵件或任何數據以確認身份)來實現。然後,服務器可以根據可信實體列表(證書,證書頒發機構等)檢查提交簽名,以確保只執行可信提交。每個簽名可以與不同的所有者相匹配。 – Lucero 2010-11-23 12:14:16

回答

7

我不知道的方式實際上是限制的承諾不會因此包括「偷」的身份,但如果你有一個集中的存儲庫,你應該能夠安全地審覈誰已經推動其改變服務器,從而追查身份盜賊。


編輯:似乎是簽名支持兩個擴展,在CommitsigsExtension以及由GpgExtension實現看似不太安全的方式提交。

簽署的變更有效防止身份盜竊,因爲小偷沒有他想竊取身份的私鑰,因此他不能簽署承諾。

0

對「主」回購和日誌請求使用訪問控制。如果您記錄了通過身份驗證推送每個提交的內容,則可以知道是誰真正推送了特定提交,而不管存儲庫中的信息如何。

2

Mozilla項目做到這一點的pushlog的形式。他們對網頁模板進行了微小改變,以顯示推送日誌的輸出,該推送日誌在推送時使用changeset鉤子很容易創建。這裏是他們的日誌是什麼樣子:

http://hg.mozilla.org/mozilla-central/pushloghtml

創建這樣的日誌可能是那麼容易,因爲鉤:

[hooks] 
changeset = echo $REMOTE_USER pushed HG_NODE >> /path/to/my/pushlog 

在實踐中,這是其中的一件事情,一切都認爲將是一個當他們第一次聽到「用戶」字段完全是可證僞的,但實際上從來沒有真正成爲問題。

相關問題