2013-03-19 4 views
4

У меня есть два разных проекта django, где один находится на домене A и имеет кучу функциональных возможностей (среди них REST). Сайт B прост, и я хочу разместить ajax-формы на сайте A, но сохраняю безопасность csrf. Это возможно?Междоменный CSRF

Btw-сайты могут совместно использовать базу данных, если необходимо.

+0

Да, но только если эти два являются поддоменами того же домена (или, например, один является субдоменом, а другой - основным доменом). Это то, что вы хотели? – Visionscaper

+0

Только что создал этот ответ, может быть, он поможет всем, кто интересуется этим вопросом. http://stackoverflow.com/a/22584318/889617 – Visionscaper

ответ

2

У меня была проблема, и всего напоминает мне удалось решить следующим образом:

  1. вопрос GET запрос с сайта B на сайт А извлекать форму (с полем CSRF)
  2. ПОЧТИ форму обратно на сайт А.

Основная проблема для меня заключалась в том, чтобы получить запросы на работу с несколькими сайтами. Для этого мне пришлось правильно настроить CORS на стороне сервера (я немного отредактировал это промежуточное программное обеспечение: https://gist.github.com/strogonoff/1369619) и установил xmlHttp.withCredentials = true (где xmlHttp - это мой объект XMLHttpRequest) в функции POST ajax.

Я протестировал это решение на двух портах diffenet на одном и том же IP-адресе, но я думаю, что он также должен работать в междоменном режиме.

+0

Как это сделать? Как добавить это в мой класс Middleware – raaj

+0

Настройка этого промежуточного программного обеспечения описана в комментариях к этому файлу (https://gist.github.com/strogonoff/1369619#comment-586223). – zeroos

Смежные вопросы