【问题标题】:Cross-domain CSRF跨域 CSRF
【发布时间】:2013-03-08 04:16:28
【问题描述】:

我有两个不同的 django 项目,其中一个位于域 A 上并具有一堆功能(其中包括 REST)。站点 B 很简单,我想将 ajax 表单发布到站点 A,但要保持 csrf 安全。这可能吗?

如有必要,网站可以共享数据库。

【问题讨论】:

  • 是的,但前提是这两个是同一个域的子域(或者,例如,一个是子域,另一个在主域上)。这是你想要的吗?
  • 刚刚创建了这个答案,也许它对任何对此问题感兴趣的人都有帮助。 stackoverflow.com/a/22584318/889617

标签: django csrf


【解决方案1】:

我有一个类似的问题,我已经设法通过以下方式解决它:

  1. 从站点 B 向站点 A 发出 GET 请求以获取表单(带有 csrf 字段)
  2. 将表单发布回站点 A。

对我来说主要的问题是让跨站点 ajax 请求正常工作。为了实现这一点,我必须在服务器端正确配置 CORS(我稍微编辑了这个中间件:https://gist.github.com/strogonoff/1369619)并在 ajax POST 函数中设置xmlHttp.withCredentials = true(其中 xmlHttp 是我的 XMLHttpRequest 对象)。

我已经在同一个 IP 地址的两个不同端口上测试了这个解决方案,但我认为它也应该可以跨域工作。

【讨论】:

猜你喜欢
  • 2018-01-07
  • 2015-11-20
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2015-03-03
  • 2021-08-16
  • 1970-01-01
  • 2011-08-16
相关资源
最近更新 更多