Как защитить конечные точки API, чтобы их мог использовать только наш код?

У меня есть некоторые конечные точки веб-API, к которым я хотел бы гарантировать доступ только нашим приложениям\коду.

Мы внедрили систему аутентификации на основе токенов. Проблема в том, что кто-то потенциально может проверить трафик с рабочего стола, вытащить токены и вызвать скрипт для наших конечных точек с помощью прослушиваемого токена.

По сути, я хочу гарантировать, что вызовы API исходят только из нашего клиентского кода. Я думал о потенциальном шифровании клиентской стороны токена, а затем расшифровке серверной части для проверки источника, но поскольку наш клиентский javascript-код может быть проверен, метод шифрования потенциально может быть воспроизведен.

Я уверен, что есть готовые решения... Я просто не знаю, с чего начать. Любые идеи?

По сути, если у вас есть конечная точка API, считайте, что ее можно вызывать из чего угодно. Потому что это. Вы можете аутентифицировать пользователя, но затем этот пользователь аутентифицируется для доступа к вашему API с помощью любой утилиты (если вы используете javascript в качестве одного из клиентов). Так что лучшее решение - не позволять им делать что-то опасное. Дважды проверьте все на бэкэнде.

Garrett Motzner 17.01.2019 22:40

См. также этот вопрос: security.stackexchange.com/questions/118096/…

Garrett Motzner 17.01.2019 22:42

А также: nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/aug‌​ust/…

Garrett Motzner 17.01.2019 22:43

Кроме того, вы можете использовать веб-токен с датой истечения срока действия, чтобы свести к минимуму возможность использования другого инструмента для доступа к API, но это не исключает его.

Garrett Motzner 17.01.2019 22:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
53
0

Другие вопросы по теме