Возможно ли создать клиент только в HTML/JS для REST API и предотвратить CSRF?Клиент REST API только в HTML/JS
ответ
Это возможно.
Предотвращение CSRF обычно делается для простых веб-сайтов, а не API, поскольку API-интерфейсы обычно предназначены для доступа к другим веб-сайтам. Скрытые крошки и жетоны, которые являются наиболее распространенным способом предотвращения такого рода нападений, не будут работать должным образом на потребляемых API.
Возможно, вам нужен хороший механизм аутентификации. Одной из основных недостатков веб-приложений, уязвимых для CSRF, являются файлы cookie. Если ваш API им не нужен, использование другого механизма аутентификации (например, OAuth или HTTP Digest) может быть ответом, так что внешние пользователи могут безопасно использовать API (без отвратительной проверки крошки).
Оба HTTP Auth Basic и OAuth 2.0 возможны в клиентских приложениях JS. Для OAuth2 существует демо-версия: https://gist.github.com/563893
Twitter использует свой собственный публичный API внутри основного веб-сайта, поэтому есть доказательство того, что возможно что-то подобное, хотя я не уверен, как конкретно они предотвращают внешний CSRF. Каждый запрос делается получателем (находится здесь: https://api.twitter.com/receiver.html), а токены авторизации туннелируются с помощью файлов cookie. Вам, вероятно, потребуется продолжить исследование их реализации.
- 1. клиент-сервер Защита REST API
- 2. WSO2 API Manager: Клиент Rest Rest неавторизован
- 3. Клиент REST для API CollectiveAccess
- 4. Клиент REST в node.js
- 5. Woocommerce API rest клиент извлекает продукты
- 6. Клиент REST в C
- 7. Предупреждающий клиент об устаревших API REST
- 8. Magento REST API Клиент не работает
- 9. Клиент продолжает запрашивать файл из REST API
- 10. Java - клиент REST
- 11. Rest API neteller показать недопустимый клиент Ошибка
- 12. Общий клиент REST в Scala
- 13. Клиент CodeIgniter Rest
- 14. Клиент REST для Amazon s3 в J2ME
- 15. Клиент IObservable REST
- 16. Клиент REST в Акке с Java
- 17. Параллелизм в REST API
- 18. только «получить» разрешено REST-API в WordPress
- 19. Разрешить только GET в REST API
- 20. Синхронизация клиент-сервер через REST
- 21. REST API и в режиме реального времени клиент
- 22. «Клиент API REST» в Visual Studio для основных проектов ASP.NET?
- 23. Клиент GridGain REST до
- 24. Настройка ng-htmljs-preprocessor karma preprocessor
- 25. Клиент Neo4j rest в Java
- 26. Gluon JavaFX Rest клиент
- 27. Асинхронный клиент REST
- 28. Клиент iPhone REST
- 29. Тонкий или толстый REST-клиент?
- 30. Java-совместимый клиент REST в Ruby
Как я могу хранить секретный ключ на клиенте? (Мой клиент - браузер) – vlycser