首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django:有没有一种安全可靠的方法可以让账户持有者在你的应用程序上拥有独立的域名?

Django:有没有一种安全可靠的方法可以让账户持有者在你的应用程序上拥有独立的域名?
EN

Stack Overflow用户
提问于 2010-02-11 06:26:12
回答 1查看 128关注 0票数 1

如果我希望我的帐户持有者能够拥有他们自己的子域,甚至是他们自己的域。使用NGINX作为我的代理服务器,我是否应该在我的NGINX conf中为每个人创建域名,并让我的客户将他们的域名指向那里,或者这是不好的原因吗?此外,如果我这样做了,我如何通过请求(即,从www.spamfoosaccount.com到我的服务器的请求)传递特定于帐户的信息( Django DB中的帐户),所以我将请求代理回Apache,但是我的应用程序如何知道它来自spamfoo的帐户,除非我查看request.HTTP_HOST (这可能是最好的方法,但我直到询问才知道)。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-17 22:22:57

要知道请求来自哪个域,您必须使用request.META["HTTP_HOST"]

但是,不要依赖此值进行身份验证,它很容易被伪造。使用django.contrib.session时,身份验证应该以通常的方式进行。来自特定域/子域的请求不应具有更多特权/权限,即使该请求包含经过身份验证的会话。应将权限授予用户/用户组,而不是域。

请注意,浏览器会话不能跨越二级域(例如,来自foo.com的会话cookie不会被发送到bar.com),但它可以是所有子域的*.foo.com cookie (如果您明确设置)。

让你的用户将他们的DNS记录指向你的服务器的IP,让NGINX根据域名将请求路由到你的后端,并在Django中进行正常的身份验证。

你的问题:

我的应用程序如何知道它来自spamfoo的帐户

我不知道你的应用程序的细节,但请求来自哪里并不重要,重要的是谁发出了请求(例如,一个经过身份验证的用户)。您应该有一个模型/字段将您的用户链接到他们各自的域。当用户仅链接到一个域时,应用程序应假定该用户来自该域。当用户连接到多个域时,您可以查看request.META["HTTP_HOST"]。如果这个值与任何一个域匹配,用户就会被链接到,这没关系,这个值可能是伪造的,但仍然是由链接到该域的用户伪造的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2240812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档