我刚学会python/django才一年。django 站点的部署仍然是我有很多疑问的主题,尽管我已经成功地手动部署了我的站点。我关于部署的最大问题之一是我可以采取什么措施来保护我的应用程序的源代码,包括 django setting.py 中的密码,免受其他人的侵害,尤其是当我的网站在某些第三方提供的虚拟主机上运行时。称我为偏执狂,但我的源代码在第三方服务器上运行,有人有权访问服务器上的任何内容/任何地方,这让我感到不安。
几乎没有您的托管服务提供商会对您的源代码感兴趣。 大多数网站的源代码价值不高。
如果您真的觉得有必要保护您的源代码,最好的办法是从您拥有和控制并具有独占访问权限的系统中提供源代码。
如果做不到这一点,有一些技术可以混淆 python,其中最直接的是只将 .pyc 文件推送,而不是将文件.py到生产服务器。 然而,这不是Django的标准做法,因为托管服务提供商窃取网站源代码并不是一个真正的问题。 我不知道这种技术是否适用于Django。
如果someone has the privileges to access anything/anywhere on the server
你不能做很多事情,因为你能做的事情其他人也可以做,你可以尝试一些混淆方法,但这行不通。唯一的解决方案是不使用此类共享存储库。
编辑:选项
- 如果数据不是很敏感,请继续使用共享存储库
- 使用机架空间等公司的专用托管
- 使用 AWS 运行您自己的实例
- 使用谷歌应用引擎服务器,但这可能需要更改数据库
- 运行您自己的服务器(最安全)
虽然您的源代码可能很好,但我建议不要以明文形式存储您的配置密码,无论代码文件是否已编译。 相反,在服务器上具有适当密码的哈希,让服务器生成登录期间提交的密码的哈希并进行比较。标准安全实践。
再说一次,我可能只是在谈论我的后端,因为我还没有对 Django 大惊小怪。
恕我直言,保护源代码并不是那么重要。我只会部署编译的文件,而不必太担心它。
保护您的配置(特别是密码)确实很重要。Temia的观点很好。