2011-12-31 69 views
1

鑑於C#可以非常容易地反編譯,暴露所有設置變量以及功能,是否有一種方法可以充分保護Facebook提供的用於創建應用程序的API祕密?保護C#中的Facebook API祕密

謝謝

回答

1

解決此問題的一種方法是將這些憑證存儲在您的app.config文件中,然後使用DPAPI加密包含這些憑證的節。

http://msdn.microsoft.com/en-us/library/ff647398.aspx

解密配置值是透明的並且仍然可以通過ConfigurationManager類來完成。

3

軟件設計的一般規則是不信任客戶端。無論客戶能做什麼,任何人都可以做到。你可以通過默默無聞的方式來嘗試一些安全措施,並且有一種方法可以「產生」祕密,或者你可以將它隱藏在一個看似無關的類中,但是在一天結束時,任何有點時間的人都可以看看在傳出數據包並從中提取密鑰。

如果您想要真正的安全性,請將您的所有網絡路由通過您的服務器。讓客戶端發送命令到您的服務器,它將解釋命令並使用Facebook API與您的祕密一起向客戶端發送正確的數據。

+3

這不僅適用於.NET語言或易於反編譯的語言。是的,從程序中提取密鑰可能比較困難,但使用wireshark查看傳出數據包並從那裏複製API密碼也很容易。 – 2011-12-31 10:46:20

+0

如何讓應用程序在登錄後訪問用戶配置文件。程序是否需要集成它以允許用戶允許應用程序訪問其設置?並且需要發送什麼來驗證用戶? – topherg 2011-12-31 10:52:08

+2

如果您對自己的答案有其他信息,最好編輯答案並添加信息,而不是對其進行評論。 – 2011-12-31 10:52:20