Нет причин беспокоиться о CSRF для вашего REST API, отметьте этот раздел в документации, которая объясняет, почему.
Лучший способ предотвратить спам - это собрать пользовательские данные из проверенного источника, такого как провайдер OpenID, Facebook и т. Д. Если вы хотите сделать это вручную, то самый простой способ сделать это - взять django -регистрация и расширение одного из бэкэндов. Вы можете взять предоставленный простой бэкэнд и использовать пользовательскую форму с полем капчи. Этого должно быть достаточно, чтобы отсеять автоматические регистрации. Должно быть достаточно простым, чтобы подключить его к поршню .
EDIT:
Вы правы, я только что перечитал вопрос и заметил, что полностью проигнорировал тот факт, что вы уже упоминали, что разрабатываете свой REST API для удаленных пользователей Android / iPhone. Таким образом, ваш API открыт для общественности и принимает запросы, которые не исходят от вашего домена или от клиента браузера по этому вопросу.
Тогда я бы не стал изобретать велосипед в вашем случае, вам следует внедрить Аутентификацию с открытым API , поскольку она идеально подходит для ваших требований: знание того, что вы обмениваетесь информацией с реальным пользователем, не беспокоясь откуда запрос возник.