2013-12-22 135 views
4

我正在研究以訪問Google API的解釋型語言創建桌面應用程序。據我所知,有一個安全漏洞。客戶端密碼將暴露在代碼中,即使我使用C++或Java創建了應用程序,代碼也可以反編譯和拆解,理論上可以找到祕密。除了混淆代碼之外,還有其他什麼嗎?我希望能夠分發其他人使用的代碼。OAuth祕密和桌面應用程序

回答

2

OAuth 2.0 Threat Model and Security Considerations(rfc6819)已列出獲取客戶機密作爲威脅。

而作爲谷歌文檔使用OAuth 2.0 for Installed Applications說:

這些應用程序分發到個人計算機,並假定這些應用程序不能保守祕密。

所以事實上沒有客戶「祕密」。試圖在安裝的應用程序中混淆祕密是徒勞無益的,因爲使用大量逆向工程和調試工具可以隨時恢復機密。

當然,你應該盡最大努力保護祕密,但最終,一個高度積極的黑客總是可以在安裝的應用程序中獲得它。所以這是祕密與難度提取的價值。客戶端祕密的價值是冒充應用程序。它不給任何用戶數據的訪問權限。

我的建議: 只要冒險繼續並將其混淆即可。或者你可以考慮使用 代理模式(move the secret to a web server acting as an API proxy)。