2015-12-01 88 views
1

我正在開發Firefox插件,我想與使用oauth進行身份驗證的第三方服務進行集成。因此,我有一個API密鑰和祕密,我需要用它來與他們的API進行通信。如果我將API密鑰和祕密包含在插件的源代碼中,那麼人們(插件的用戶等)是否能夠確定密鑰並將其公開? SDK中是否有一些機制可以將附件中的祕密存儲起來?將API密鑰和祕密放在我的Firefox插件中

我在概念驗證中使用的另一種方法是,我要求用戶生成密鑰和密鑰並將其輸入到設置中。這工作,但不是非常用戶友好。

編輯:

爲了澄清,在反應的評論,我不是在尋找保持祕密進行的源代碼,我正在尋找一種方式來使用我自己的祕密在我的插件,保證它們向公衆祕密。所以他們會使用我的插件運送給每個人。

+0

您可能會發現下面這個主題很有用[API密鑰之外的祕密信息保存在源代碼控制之外的策略?](http://programmers.stackexchange.com/questions/205606/strategy-for-keeping-secret-info -such-as-api-keys-out-of-source-control) –

+1

@ O-mkar謝謝你的回答。然而,我的問題不在於源代碼控制,而在於生產代碼。 Firefox附加組件是用Javascript + HTML + CSS編寫的,所以我的API密鑰將在正在運行的生產代碼中(這在一定程度上可由用戶檢查) – Mosselman

+0

如果您覺得有用,請評價我的評論:) –

回答

1

如果我在插件的源代碼中包含我的API密鑰和祕密,那麼人們(插件用戶等)是否能夠計算出密鑰並將其公開? SDK中是否有一些機制可以將附件中的祕密存儲起來?

你問是否有可能使數據無法訪問到誰擁有完全控制計算機用戶,但使其在用戶具有完全控制的非常同一臺計算機上運行的軟件進行訪問。

的選擇,我在我的概念證明使用的,是我要求用戶生成一個密鑰和密碼,進入那些進入設置。這工作,但不是非常用戶友好。

然後自動化該過程使其更加用戶友好?

+0

謝謝你的回答。我在某種程度上同意你的第一個觀點,但這不是黑白的。已編譯的應用程序可能包含用戶即使擁有「完全控制權」也無法訪問的祕密。然而,正如你所說,Firefox的本質(插件的源頭向用戶開放)確實使得不可能保護用戶的祕密。 至於你的第二個建議,我會盡力做到這一點。用戶必須登錄到我正在連接的服務中,但是我可以自動從頁面中抓取密鑰,並使用某種類型的內容腳本來顯示它們。 – Mosselman

+0

我將等待一段時間,然後我給你答案 – Mosselman

+1

從信息理論和計算機安全的角度來看,它就像我說的那樣是黑色和白色。你說人們 - 我引用 - 「*無法訪問*」它,這是不真實的。要做到這一點可能會很困難,因爲在這方面需要的不僅僅是微不足道的努力,而且也不會使它變得不可能。一個例子是藍光解密密鑰。它們是通過內存轉儲和調試器從編譯和混淆的軟件播放器中提取的。 – the8472

相關問題