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