2010-10-27 66 views
1

最近我開始使用codeplex.com託管我正在做的項目,我想與人們分享。我是使用源代碼管理和開源處理的新手。當然使用源代碼控制處理敏感數據的最佳方式是什麼?

與Twitter我的應用程序的交易,我也使用Twitter API密鑰。

我使用Visual Studio 2010和TortoiseHg作爲源代碼控制。

所以我的問題是:我怎麼能推代碼,而無需共享敏感數據,如API密鑰? 我不應該分享這些密鑰,對吧? Twitter的API密鑰,TwitPic API密鑰,Plixi API密鑰...

難道我推着我的代碼之前每次清洗的敏感數據?

此外,請你告訴我,我在哪裏可以學習最佳實踐使用源代碼控制?

回答

3

您應該將所有敏感信息外部化爲專用屬性文件。該文件應該從源代碼管理中排除。大多數(如果不是全部的話)源代碼管理系統將允許你將文件標記爲不被版本化。我不知道汞的具體情況,但似乎是.hgignore的地方。當它涉及到從倉庫中取出信息

所有的源代碼控制系統都特別煩。我們幾乎可以認爲它們是爲了記錄項目的完整歷史而創建的;-)因此,準備好在API錯誤被錯誤地提交後做出改變(而不是我曾經做過類似的事情)。

編輯,因爲它似乎我不是很清楚:

最重要的部分是清楚地分開從標準信息的敏感信息。您應該有一個包含敏感信息且僅包含敏感信息的文件。然後將此文件標記爲「未版本化」。如果你不這樣做,你總會最終提交你的敏感信息。而一旦他們離開,幾乎沒有辦法讓他們失望。

的另一種方式是將敏感數據進行加密,提交的加密數據和解密鑰匙只在服務器上存在(或其他一些嚴格控制的位置,從您的版本控制系統遠)。我們實際上在我工作的私人銀行中使用此解決方案,以便開發人員無法訪問生產系統的密碼。

+0

非常感謝Guillaume。所以如果我想在本地測試我的項目,我應該在提交之前刪除敏感數據,對。我希望能否從有經驗的人那裏得到更多的意見。 – Hasan 2010-10-28 10:26:01

相關問題