在我的情況下,我正在使用Dropbox API。目前,我將密鑰和密鑰存儲在一個JSON文件中,以便我可以對其進行gitignore並將其保留在Github repo之外,但顯然這並不比從安全角度考慮代碼更好。關於保護/混淆Python之前存在很多問題(通常是出於商業原因),答案總是「不要,Python不適合這樣做」。因此,我不是在尋找一種保護代碼的方法,而是一種解決方案,它可以讓我分發我的應用程序,而不會公開我的API細節。我應該如何將API密鑰存儲在Python應用程序中?
7
A
回答
2
純文本。如果代碼被分發,任何模糊嘗試都是徒勞的。
2
不知道你的情況是否可行。但是您可以通過您託管的代理訪問API。
來自Python APP的請求轉到代理,代理向Dropbox API發出請求並將響應返回給Python應用程序。這樣您的api密鑰將位於您所託管的代理服務器上。訪問代理服務器可以通過您喜歡的任何方式進行控制。 (例如用戶名和密碼)
+0
總的來說,這是一個很好的解決方案,但在我的情況下,我選擇專門使用Dropbox,因爲我既沒有資源也沒有傾向於託管自己的服務器,我只想專注於製作客戶端。 – espekia 2012-04-28 08:14:51
1
有根據您的情況有兩種:
如果你正在爲最終用戶提供一個web應用,只是它託管的方式,你的API密鑰不來披露。因此,將它保存在一個單獨的文件中,並只將其上傳到服務器應該沒問題(只要沒有違反服務器的規定)。任何混淆都不會增加任何實際的好處,它只會給人一種虛假的安全感。
如果您正在爲開發人員或最終用戶的客戶端應用程序開發框架/庫,請他們自行生成API密鑰。
相關問題
- 1. 在我的應用程序中存儲敏感的API密鑰
- 2. 我應該在rails3中存儲API密鑰?
- 3. 我應該在電子應用程序中存儲OAuth客戶機密鑰?
- 4. 我應該在哪裏存儲我的Node.js應用程序的密鑰?
- 5. 在SAAS應用程序數據庫中存儲Braintree API密鑰
- 6. 在iPhone應用程序中存儲API密鑰不安全?
- 7. 在Rails 3應用程序中安全地存儲API密鑰
- 8. 我應該如何在webapp2會話中存儲實體密鑰?
- 9. 我應該在開源應用程序中發佈我的Spotify API密鑰嗎?
- 10. 什麼我應該使用密鑰存儲關於應用程序?
- 11. 爲什麼在應用程序之外存儲API密鑰?
- 12. 在應用程序中存儲加密密鑰
- 13. 在iOS應用程序中存儲加密密鑰?
- 14. 在黑莓應用程序中存儲加密密鑰
- 15. 我應該使用哪個密鑰在iOS鑰匙串中存儲密碼?
- 16. 我是否應該在我的iOS或Android應用程序中硬編碼存儲加密密鑰
- 17. 我的OSX應用程序應該如何存儲用戶的私鑰?
- 18. 我應該在我的iOS應用程序中加密Amazon S3密鑰嗎?
- 19. 我應該如何存儲密碼?
- 20. 如何安全地存儲應用程序ID /密鑰?
- 21. 如何在我的Qt應用程序中存儲密碼?
- 22. 在iPhone應用程序的代碼中存儲OAuth密鑰
- 23. 我應該加密我的Dropbox應用程序密鑰/祕密嗎?
- 24. 我應該在哪裏存儲公鑰?
- 25. 如何爲我的應用程序生成Api密鑰
- 26. 如何將Google Maps API密鑰注入Android應用程序?
- 27. 我的Cocoa應用程序應該如何存儲用戶的許可證密鑰?
- 28. 我應該在JavaScript應用程序中存儲客戶機密碼
- 29. 您在哪裏/如何在Spring Boot應用程序中存儲應用程序祕密(密碼,API KEY)
- 30. 在反應應用程序中使用API密鑰
將它們作爲加密值填入文本文件中。創建一個私人存儲的加密密鑰,在需要時解密。雖然可能有更好的方式,但這種方式在過去對我很有幫助。 – 2012-04-27 19:46:08
如果有人在他們的計算機上運行該程序,並且該程序使用該密鑰,則會實際披露該密鑰。它不需要一個天才就可以啓動WireShark,讓程序連接,並過濾捕獲連接到Dropbox(或其他一些標準 - 最糟糕的情況下,你要挖掘幾百個數據包)。只是混淆程序不會爲你購買任何東西,因爲你不能改變API密鑰的字符串,或者它對你的程序沒有用處。 – delnan 2012-04-27 20:22:27
@delnan但是API密鑰在HTTP流量中可見嗎? Dropbox通過SSL進行一切操作。我不知道他們是使用GET還是POST變量,或者只是將它們放在HTTP請求的頭文件中。這些事情是通過HTTPS請求加密的,還是僅僅是請求的主體? – espekia 2012-04-29 08:58:48