У меня есть веб-приложение Django, которое имеет и фронтенд, доступный для сети компонент и API, к которому получает доступ настольный клиент. Однако теперь с новым компонентом промежуточного программного обеспечения CSRF, запросы API от настольного клиента, которые являются POST'ed, получают 403.
Я понимаю, почему это происходит, но что надлежащий путь состоит в том, чтобы зафиксировать это, не ставя под угрозу безопасность? Есть ли некоторым образом, я могу предупредить в HTTP-заголовке, что это - запрос API и что Django не должен проверять на CSRF, или это - плохая стратегия?
Править--
Метод, который я использую в данный момент, - то, что настольный клиент устанавливает заголовок, X-Requested-With: XMLHttpRequest. Это - вид hacky, но я не уверен, как это было бы обработано лучше.
Как насчет того, чтобы просто отделить представление(я) для вашего настольного клиента и украсить их csrf_exempt?