【问题标题】:Django ALLOWED_HOSTS vs CORS(django-cors-headers)Django ALLOWED_HOSTS vs CORS(django-cors-headers)
【发布时间】:2018-04-24 00:28:17
【问题描述】:

ALLOWED_HOSTS 和 CORS 有什么区别。如果我已经定义了 ALLOWED_HOSTS,我还需要定义 CORS 吗?我没有使用 django 模板。 我也有可能动态定义这两个吗?(我认为没有)
我使用 django 作为后端,并在不同的主机上使用多个 reactjs 前端应用程序。

【问题讨论】:

  • 请提供更多信息。您正在构建 API 服务器吗?是否会有一个静态 JavaScript 来查询它?这些会托管在主机上吗?不同的主机?为什么你认为你需要 CORS?
  • 您能解释一下您要达到的目标以及“动态地”定义这两个是什么意思吗?
  • 我有一个联盟计划,用户可以在其中注册他们的网站,所以我不想每次都重新启动服务器并手动更改它们,我正在做的现在,每次用户成为会员时都从数据库中获取网址
  • 我明白了.. ALLOWED_HOSTS 也接受通配符,尽管这可能会使您的应用程序更容易受到攻击.. 但鉴于您的业务需求,这是您必须处理的事情

标签: python django django-cors-headers


【解决方案1】:

ALLOWED_HOSTS 上的文档。 简而言之,在您拥有DEBUG=FALSE 的生产环境中,您的 Django 应用程序将不会在 ALLOWED_HOSTS 中未指定的域或子域中提供服务。这是您可以在其上提供应用的受信任域的白名单。

CORS 另一方面,我假设你在问,因为你也在做 Django Rest Framework,代表跨域资源共享,基本上允许你的前端应用程序,比如你提到的多个 reactjs 应用程序,与您的 API 进行交互,而无需将它们全部部署在同一个域上。 django-cors-header 是配置 CORS 的推荐包。

【讨论】:

  • 如果我有另一个后端正在向这个后端发出 python 请求,CORS 在这种情况下也会允许/拒绝请求吗?
  • 抱歉有点晚了,但实际上这是不正确的。 CORS 对于(并且仅适用于)从 Web 浏览器发送的请求非常重要且必不可少。如果您从服务器发送请求,则可以忽略 CORS 策略并发出您想要的任何请求。
猜你喜欢
  • 2016-06-08
  • 2016-11-16
  • 2015-03-18
  • 2018-01-16
  • 2018-06-23
  • 2021-05-24
  • 2020-01-08
  • 2019-01-09
  • 2015-10-02
相关资源
最近更新 更多