Я разрабатываю RESTful API, используя php/symfony2.API CSRF и RESTful (symfony2, php)
Symfony2 поставляется с защитой CSRF из коробки и отлично работает при использовании данных нормальной формы (он передает токен CSRF в форму и, когда отправляется обратно, ожидает тот же токен, который встраивается в форму).
Тем не менее это решение не подходит для использования, если вы разрабатываете API RESTful, где мое сообщение между бэкендом < -> frontend чисто основано на JSON. Из-за этого я отключил CSRF.
Я знаю, что токен CSRF небезопасен, поэтому мне интересно, какой оптимальный способ иметь CSRF с RESTful API.
Одна идея состоит в том, чтобы иметь конкретный URL, например./api/generate/csrf, который может быть вызван интерфейсом, а затем добавить токен к запросу json. Это звучит не так, как самый безопасный способ в качестве токена технически может быть сгенерирован кем угодно.
Каков наилучший способ решения проблемы CSRF при разработке API RESTful.
Cheers, Ричард
Какой клиент вы используете для API? Является ли это еще одной веб-службой, мобильным приложением или внешним клиентом (например, угловым/опорным/угловым). Если вы используете первый или второй вариант, ответы могут отличаться от последнего. –
@Jurian Sluiman Клиент (интерфейс) является веб-сайтом (html5/js) на данный момент. Однако, возможно, потребуется и поддержка других устройств в будущем, поэтому я не хочу ограничивать себя веб-сайтом. –