Безопасные запросы в nodejs - PullRequest
0 голосов
/ 24 мая 2018

У меня есть приложение.Мое приложение имеет 3 слоя.

  • Front-end (содержит дизайн и функции front end)
  • Back-end 1 (layer 2 - это внутренний сервер, который получает форму данныхпередний уровень и предоставляет бэкэнду 2, который содержит операции с базой данных (этот уровень является просто транспортером)
  • бэкэнд 3 является еще одним бэкэндом, который запускает операции базы данных с данными, полученными с уровня 2.

Когда запрос XHR отправляется с внешнего интерфейса, он переходит на уровень 2, на уровне 2 на сервере Nodejs, он добавляет ключ API и перенаправляет запрос на внутренний сервер 2 по специальному адресу,в конце 2 он сначала проверит ключ API, а затем запустит операцию.

Пример:

1- form submited in front end to "/api/create_user"

2- in front-end 2 -> request handled "/api/create_user" get the request and 
   send to "/api/create_user_dkfjhierhgeirhuggridrfjkndf/APIKEY"

3- in back-end 2 -> it check the the request address and APIKEY then trigger 
   the request.

Проблема в том, что кто-то отправил какой-то запрос приложением, которое они сделали из моегоприложение.

У меня вопрос как я могу проверить запросы на уровне 2 и убедиться, что этот запрос был получен с нашего внешнего интерфейса, а не из нашего приложения?

1 Ответ

0 голосов
/ 24 мая 2018

Итак ... у вас есть API в Интернете и веб-приложение, которое использует API.

Кто-то взглянул на ваше приложение, выяснил, каковы ваши вызовы API (обратный инжиниринг),и они написали свой собственный интерфейс.

Если ваше приложение является веб-сайтом, есть некоторые вещи, которые вы можете применить.CORS один.https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

В CORS веб-браузер загружает веб-страницу и видит запрос xav на JavaScript.Сначала веб-браузер спрашивает веб-сервер, имеет ли веб-страница разрешение на доступ к веб-серверу.

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

Наиболее распространенным способом предотвращения является требование регистрации пользователя и входа в систему.Даже это может быть изменено, но теперь злоумышленнику необходимо продублировать ваш поток входа в систему и получить учетные данные для входа.

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

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