繁体   English   中英

在主机上部署包含敏感代码的Django站点

[英]Deploying a Django site with sensitive code on a host

我一直在使用本地代码在本地计算机上开发一个敏感(即专有)代码的网站,并使用apache2对其进行测试,最后我将通过Web主机对其进行设置。 我有点警惕,因为“该代码应该放在哪里?” 注意这里的Django的教程:

该代码应该放在哪里?

如果您的背景是普通的旧PHP(不使用现代框架),则可能习惯于将代码放在Web服务器的文档根目录下(例如/ var / www)。 使用Django,您无需这么做。 将任何这些Python代码放在​​Web服务器的文档根目录中不是一个好主意,因为这冒着人们可能能够通过Web查看您的代码的风险。 这对安全性不利。

将您的代码放在文档根目录之外的某个目录中,例如/ home / mycode。

我的房东告诉我,将给我一个/ home /目录,该站点将位于/ home / www中。 在将所有内容发送给他之前,我试图在最后模拟此目录结构,以确保其运行尽可能顺利。 我的问题是,如果我希望所有代码都位于/ www目录之外(根据上述Django教程建议),那么/ www目录中实际上有什么内容?

我的开发目录结构基本上是这样的:

project
    db
    app1
    app2
    mysite (contains settings.py, wsgi.py, etc.)
    static
    templates (contains my base.html, and custom templates for admin, etc.)

其中app1和app2是我开发用于插入mysite的Django应用程序。 那么,哪些文件夹/文件需要放在home / www目录中,什么可以安全地存放在home / mycode中?

您的静态和媒体(用户上传的)文件夹, robots.txt等应位于www目录中。 基本上是您的网络服务器直接提供的任何文件,而不是通过Django直接提供的文件。 其他文件应位于此目录之外。

您的网络服务器应将www目录中未找到的所有请求指向您的wsgi应用程序,该应用程序不需要通过url即可访问代码。

原因是与php文件相比,您的网络服务器不执行python文件中的代码。 如果您的代码位于您的Web根目录中,那么人们只需转到example.com/src/settings.py即可阅读您的设置文件。 图片,纯html /文本文件和javascript均应阅读,但应执行的任何代码均应位于Web根目录之外。 Django将执行这些文件并生成用户应实际看到的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM