(Извиняюсь, если все это звучит банально, я новичок и с веб-программирования и Джанго)Безопасность отключения защиты от CSRF для API доступом в Джанго
Я пишу веб-интерфейс к базе данных научных измерений с Джанго ,
Часть необходимой функциональности - предоставить пользователям возможность отправлять новые измерения в базу данных с веб-страницы. У меня есть эта функциональность, работающая с помощью превосходной поддержки django для веб-форм. Данные отправляются через POST-запросы, защищенные токенами CSRF.
Я сейчас разрабатываю ту же функциональность не через веб-формы, а через API-интерфейс, так что пользователи могут делать, например, массовые представления новых измерений с помощью скрипта Python без необходимости заполнять веб-форму каждый раз вручную ,
Проблема заключается в том, что, поскольку формы не заполняется, не существует также токена CSRF, и django не разрешает по умолчанию отправлять запросы POST без него.
На данный момент я столкнулся с проблемой, украсив представление API с помощью @csrf_exempt
. Но я не понимаю, как это влияет на безопасность.
Это может быть риск для безопасности? Если да, то как?
Спасибо за ответ! Я немного запутался в обработке токенов. У меня уже есть код API, который аутентифицирует пользователя, заимствованный отсюда: http://www.forgottenlabs.com/how-to-authenticate-in-django-via-urllib2/ Что меня смущает: нужен ли мне новый токен при выполнении ПОСТ? Могу ли я повторно использовать токен, полученный на этапе аутентификации? – bluescarni
Хорошо, я думаю, что, возможно, получил это: я заполнил шаблон только с '' {% csrf_token%} '', который я сначала сделал в запросе GET. Затем я разбираю токен и завершаю его в последовательный запрос POST. Кажется, теперь это работает. – bluescarni
@bluescarni см. Правки –