我知道這些問題已經單獨提出幾次,我發現的大多數答案是「Python不容易混淆,因爲這是語言的本質。如果您確實需要模糊處理,請使用其他工具「和」在某些時候您需要權衡「(請參閱How do I protect Python code和How to keep the OAuth consumer secret safe, and how to react when it's compromised?)。保持祕密密鑰在Python中安全
但是,我剛剛製作了一個使用Twitter的API(因此需要OAuth)的小型Python應用程序。 OAuth需要消費者密碼,該密碼遠離用戶。該應用程序需要這些信息,但用戶不應該能夠輕鬆訪問它。如果這些信息不能被保護(並且我使用混淆和保護作爲同義詞,因爲我不知道其他方式),首先爲Python創建OAuth API有什麼意義?然後
的問題(S)是:
- 是否可以硬編碼在應用程序中的祕密,然後 混淆它以有效的方式?
- 如果不是,那麼在Python中使用OAuth的最佳方式是什麼?我曾經想過將應用程序的加密密碼與應用程序一起「傳送」出來,並使用硬編碼密鑰來恢復它,但問題仍然存在(如何保護密鑰);讓消費者在服務器中保密,並讓應用程序在啓動時檢索它(如果信息未加密發送,則惡意攻擊者使用Wireshark並從網絡流量獲取用戶密碼比反編譯字節碼更容易,以及我如何確保我將該祕密發送給我的應用程序而不是惡意攻擊者?我知道任何形式的身份驗證都需要在應用程序端有祕密信息,問題依然存在);兩者混合(讓服務器發送加密密鑰,與以前相同的問題)。基本問題是一樣的:如果不能隱藏重要信息,你怎麼能有一些祕密?
我也見過評論說應該對這些關鍵部分使用C/C++擴展,但我對此一無所知,所以如果這是答案,我會很感激一些額外的信息。
誰是這個問題中的「用戶」,你的客戶? (您建議將應用程序與一個密鑰一起「運送」,但我不確定您的意思是否是字面意思。) –
用戶只是我自己,這不是一個嚴肅的項目。我想知道如何使用OAuth實際發佈(例如,使其在他們的網站中可用)的Python應用程序實現它。 – user2891462
這是關於討論的問題[這裏](http://blog.codinghorror.com/keeping-private-keys-private/)? – TigerhawkT3