我想將一個Django應用程序部署到雲計算環境,但我擔心源代碼的安全性。我可以只在那裏部署編譯的.pyc文件嗎?根據官方的python文檔,pyc文件「很難進行逆向工程」。如果我擔心代碼安全性,我應該只在服務器上部署.pyc文件嗎?
採取這種方法有什麼優點和缺點?這是一種標準做法嗎?我沒有使用AWS
,我只想說,我在雲計算不能在所有受信任的國家...
我想將一個Django應用程序部署到雲計算環境,但我擔心源代碼的安全性。我可以只在那裏部署編譯的.pyc文件嗎?根據官方的python文檔,pyc文件「很難進行逆向工程」。如果我擔心代碼安全性,我應該只在服務器上部署.pyc文件嗎?
採取這種方法有什麼優點和缺點?這是一種標準做法嗎?我沒有使用AWS
,我只想說,我在雲計算不能在所有受信任的國家...
部署.pyc文件不會總是工作。例如,如果使用Apache/mod_wsgi,至少WSGI腳本文件仍然需要是直接的Python代碼。
某些web框架也可能要求原始源代碼文件可用。使用.pyc文件也很難掩蓋Web框架使用的模板中的任何敏感信息。
一般情況下,使用pyc文件是一個非常薄弱的防禦和工具可用來逆向工程他們從中提取信息。
從技術上講,您的應用程序可能會運行,但它不會被視爲保護您的源代碼的非常安全的方式。
您最好使用您信任的託管服務。這通常意味着支付信譽良好的託管,而不僅僅是最便宜的託管。
是的,只是部署編譯後的文件是罰款。還有一點需要考慮的是應用程序的其他方面。一個方面是,如果當前的錯誤讓惡意用戶知道你使用的是什麼技術堆棧,當你的應用程序崩潰時顯示錯誤消息的類型。對我來說,這些看起來像其他方面的一些,我相信還有更多。
顯然你可以。檢出this question和this blog post。
有一件事我會考慮的,雖然......你爲什麼要遷移到雲供應商,如果你不相信它100%?只上傳pyc文件可能會保護你的代碼(一點點),但是保護你的用戶呢?如果你不信任提供商,你最好不要使用雲計算。
通常情況下,部署PYC文件可以正常工作。
正如你所說,優點對於保護源代碼有點幫助。
缺點,這裏是我找到的幾點:
1)。 PYC僅適用於相同的Python版本。例如,「a.pyc」是由Python2.6編譯的,「b.pyc」是2.7,而b.pyc是「導入一個」,它不起作用。同樣,「python2.6 b.pyc」也不起作用。所以,千萬記得要使用相同的Python版本生成所有PYC,以及您的雲服務器
2)的版本。如果你想SSH到雲服務器進行一些實時調試,PYC不能幫你。部署工作需要額外的工作
該帖子非常有幫助,謝謝! – NeoWang