2014-03-19 44 views
4

我想將一個Django應用程序部署到雲計算環境,但我擔心源代碼的安全性。我可以只在那裏部署編譯的.pyc文件嗎?根據官方的python文檔,pyc文件「很難進行逆向工程」。如果我擔心代碼安全性,我應該只在服務器上部署.pyc文件嗎?

採取這種方法有什麼優點和缺點?這是一種標準做法嗎?我沒有使用AWS

,我只想說,我在雲計算不能在所有受信任的國家...

回答

5

部署.pyc文件不會總是工作。例如,如果使用Apache/mod_wsgi,至少WSGI腳本文件仍然需要是直接的Python代碼。

某些web框架也可能要求原始源代碼文件可用。使用.pyc文件也很難掩蓋Web框架使用的模板中的任何敏感信息。

一般情況下,使用pyc文件是一個非常薄弱的​​防禦和工具可用來逆向工程他們從中提取信息。

從技術上講,您的應用程序可能會運行,但它不會被視爲保護您的源代碼的非常安全的方式。

您最好使用您信任的託管服務。這通常意味着支付信譽良好的託管,而不僅僅是最便宜的託管。

1

是的,只是部署編譯後的文件是罰款。還有一點需要考慮的是應用程序的其他方面。一個方面是,如果當前的錯誤讓惡意用戶知道你使用的是什麼技術堆棧,當你的應用程序崩潰時顯示錯誤消息的類型。對我來說,這些看起來像其他方面的一些,我相信還有更多。

8

顯然你可以。檢出this questionthis blog post

有一件事我會考慮的,雖然......你爲什麼要遷移到雲供應商,如果你不相信它100%?只上傳pyc文件可能會保護你的代碼(一點點),但是保護你的用戶呢?如果你不信任提供商,你最好不要使用雲計算。

+0

該帖子非常有幫助,謝謝! – NeoWang

1

通常情況下,部署PYC文件可以正常工作。

正如你所說,優點對於保護源代碼有點幫助。

缺點,這裏是我找到的幾點:

1)。 PYC僅適用於相同的Python版本。例如,「a.pyc」是由Python2.6編譯的,「b.pyc」是2.7,而b.pyc是「導入一個」,它不起作用。同樣,「python2.6 b.pyc」也不起作用。所以,千萬記得要使用相同的Python版本生成所有PYC,以及您的雲服務器

2)的版本。如果你想SSH到雲服務器進行一些實時調試,PYC不能幫你。部署工作需要額外的工作

相關問題