API-интерфейс безопасности для интерфейса переднего плана - PullRequest
0 голосов
/ 27 февраля 2019

В моей компании мы хотим использовать Javascript Framework (Vue / React / Angular). На данный момент мы сравниваем все фреймворки, чтобы определить, какая из них лучше всего соответствует нашим потребностям.

Мы хотим сделать следующее:

Backend API (C #) -> Framework (Vue / React/ Angular)

Чтобы защитить наши данные, нам нужна некоторая безопасность, поэтому не каждый может запросить наш API (с некоторым взломом). Наша цель - получить доступ к API только через клиента (веб-сайт).

Но вопрос в том, как сделать это без входа в систему?

Мы изучили:

  • CORS
  • Регулирование
  • reCAPTCHAV3 (не в Китае)

Комбинация вышеперечисленных может сработать, но разве это лучшее, что мы можем сделать?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это немного связано с Скрытие вызовов API на стороне клиента

Что вы можете сделать: https://en.wikipedia.org/wiki/Obfuscation_(software) https://obfuscator.io/ https://blog.jscrambler.com/how-to-protect-your-vue-js-application-with-jscrambler/

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

0 голосов
/ 27 февраля 2019

Извините, что сообщаю, что не существует абсолютно никакого неразрывного способа ограничить доступ к вашему API только с определенного клиента.В конце концов, ваш клиент Javascript отправляет HTTP-запросы к API, и эти запросы можно легко перехватывать, изучать и создавать заново в инструменте тестирования (или даже непосредственно в Chrome!) Или в другом пользовательском клиенте.

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

По существу, забудьте о любом решении, касающемся только клиента, потому что оно не является доверенным.

Тогда это оставляеттолько на стороне сервера.Идеи, которые вы уже высказали, могут помочь, но первый вопрос (чей ответ вы не предоставили): от каких конкретных рисков мы пытаемся защитить?

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

Приложение

Если вы не уверены, что пытаться контролировать клиента бессмысленно,Взгляните на этот проект, который существует исключительно для очистки веб-сайтов и / или предоставления различных (более мощных) API-интерфейсов для их использования: https://weboob.org/

Если вы так обеспокоены тем, что API-интерфейс будет злоупотреблять, вот2 (плохих) метода смягчения:

  • Не предоставляйте API!Визуализируйте HTML-код только на сервере.
  • Меняйте API каждый день или около того и выдвигайте новый клиент Javascript для его обработки.

Однако ни один из них не препятствует очистке веб-сайта отокончательный вариант DOM, если вы не готовы постоянно изменять его структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...