我很好奇是否根据 dev.domain.com、staging.domain.com 等域名将“环境”设置为 Production、Dev、Staging 等是否是个坏主意。
有人可以编辑他们的主机文件,将 dev.domain.com 指向 domain.com,所以现在系统认为它在 Dev 中,而实际上它在 Prod 中?这意味着任何特定于开发的代码都将由一个完全陌生的人运行。
这是可能的还是有更好的方法来确定您的环境,例如在服务器变量中手动设置它?
作为参考,我正在使用 PHP。
我很好奇是否根据 dev.domain.com、staging.domain.com 等域名将“环境”设置为 Production、Dev、Staging 等是否是个坏主意。
有人可以编辑他们的主机文件,将 dev.domain.com 指向 domain.com,所以现在系统认为它在 Dev 中,而实际上它在 Prod 中?这意味着任何特定于开发的代码都将由一个完全陌生的人运行。
这是可能的还是有更好的方法来确定您的环境,例如在服务器变量中手动设置它?
作为参考,我正在使用 PHP。
我会在机器上的服务器变量中设置环境。这使您可以在部署期间对其进行控制,并且不能被无权这样做的人弄乱。尽管如果您担心开发人员无意中连接到生产环境,那就是另一回事了。您应该通过其他一些过程控制对生产凭证的访问,例如 jndi(在 Java 世界中)或在运行时或部署时替换的环境密钥(以任何语言工作)。
根据域名将您的“环境”设置为生产、开发、登台等是绝对安全的。这是因为您可以完全控制您的域名。
当心:不要相信别人让你相信你的域名是什么。例如,$_SERVER['HTTP_HOST']
不是您的域名。它是客户端发送给您的 HTTP Host 标头的值,因此可以自由操作。
这取决于您如何使用您的域?假设有 domain.com,但有几个子域,sub1.domain.com、sub2.domain.com 等,每个子域由不同的用户和/或应用程序管理!