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