我接受了一个简单的管理网站项目,它有两个方面: 1- 经理方 2-工人方面
项目希望我建立一个网站,工作人员可以用自己的帐户将报告发送到经理页面,他们会看到报告来自谁! 必须有多个管理人员拥有自己的管理帐户,这与工人的管理帐户明显不同。
这里的问题是他们希望我在本地网络上运行管理端,该网络只包含几台计算机,而工作端必须在公共互联网上运行!我不知道该怎么做!
就将其视为小型企业!
我制作的网络应用程序如下: 一个用于工作端的应用程序和一个使用 Python、Flask、MySQL 和 SQLalchemy 的管理端的应用程序。我的重点只在后端!
使用这些以获得更好的解释:reddit...stackoverflow
这应该托管在您的本地网络上,只有 该网络内的设备。将其视为一个 Intranet 应用程序, 经理的仪表板在公司内部安全运行 本地网络。
工人方:
这应该托管在公共服务器上,以便可以通过 互联网。工作人员将能够从任何地方登录并提交 他们的报告。
您会希望双方共享同一个数据库来保存数据 简单的。选项 1:使用云托管数据库服务,例如 AWS RDS 或 谷歌云SQL。这样,您的本地(经理)和公共 (工作人员)应用程序可以安全地连接到它。选项 2:主办 本地网络上的数据库,但确保可以从 通过安全配置您的网络(例如 VPN 或 SSH)来访问公共服务器 隧道)。
工人方(公共):
确保您的应用程序使用 HTTPS 进行安全通信。一个 像 Nginx 这样的反向代理可以管理 SSL 证书并添加额外的 安全层。经理端(本地):
严格在本地网络内锁定对此应用程序的访问。如果 需要远程访问,请考虑IP白名单或设置VPN。 数据库:
始终对数据库使用强身份验证并强制执行 SSL/TLS 连接以加密传输中的数据。
在Worker端创建一个API来处理报告提交。这 管理端可以定期提取数据或接收数据 提交报告。使用安全令牌或 OAuth 进行身份验证和 保护这些 API 交互。
管理端:将其部署在本地服务器上,确保它是唯一的 可在您的本地网络内访问。 Worker端:部署在公共上 云服务(如 Heroku、AWS 等),使其可以从 任何地方。
工人通过公共工人应用程序提交报告。这些报道 存储在共享MySQL数据库中。然后管理人员查看 本地管理器应用程序上的报告,可以查看提交者 每份报告。