Как защитить веб-API от несанкционированного доступа к SPA - PullRequest
0 голосов
/ 10 февраля 2019

Я создаю службу B2B, API которой могут быть доступны третьим сторонам на основе подписки.По сути, мы предоставляем настраиваемый виджет, который наши клиенты могут разместить на своем веб-сайте, чтобы сделать его доступным для своих клиентов (например, кнопка, которая открывает модальное окно).Хотя понятно, как заставить это работать в традиционном веб-приложении, я не уверен, как гарантировать это в одностраничном приложении.Можно ли вообще сделать это без URI перенаправления, используемого в OAuth?То есть модальный вызов AJAX-запросов к нашему API, и мы хотим убедиться, что он поступает из скрипта из авторизованного источника без перенаправлений .Конечно, мы можем просто проверить заголовок Origin, но что может помешать кому-либо вручную создать запрос с таким заголовком на бэкэнде, даже если он не может сделать это в браузере.

Ответы [ 3 ]

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

Итак, в основном, вы хотите обеспечить безопасность системы, вы можете использовать Oauth2.0 тип предоставления = учетные данные клиента.Это гарантирует, что ваши API используются только авторизованными клиентами.

Работать с ним очень просто, клиент подключается к серверу Oauth2.0 с помощью client_id и client_pass, а сервер Oauth возвращает вам токен, тот же клиент токена будет передаваться на сервер, и когда вы проверяете этот токен, нажимаяСервер Oauth с идентификатором server_id, server_pass + для сервера Oauth возвращает проверку с идентификатором клиента и на основании этого вы можете предоставить свои услуги.Вам не нужно беспокоиться о перенаправлении, поскольку учетные данные клиента этого не требуют.

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

Проблема

Хотя понятно, как заставить это работать в традиционном веб-приложении, я не уверен, как гарантировать это в одностраничном приложении.

В веб-приложении вам нужно только просмотреть исходный код HTML, чтобы найти ключи API или другие секреты.Даже если вы используете традиционный веб-сервер, файлы cookie также могут быть получены для автоматизации атак на него.

В то время как этой серии статей о технологиях безопасности Mobile API относятся к мобильным устройствам,некоторые из используемых методов также действительны в API других типов, таких как API для приложений Web / SPA, и вы можете увидеть, как ключи API, токены OUATH и секреты HMAC могут использоваться для защиты API и обойтись.

Возможное решение

Вы можете попытаться затруднить поиск ключа API с помощью Javascript Obfuscator , но имейте в виду, что это только задерживает нападавшего на успех.

Итак, как я могу заблокировать атакующего?

Ну, жестокая правда ... Вы не можете !!!

Но вы можете попробовать, используя reCAPTCHA V3 от Google, который работает в фоновом режиме, поэтому не требует взаимодействия с пользователем.Недостатком здесь является то, что все ваши клиенты B2B должны были бы реализовать его на всех страницах своих веб-сайтов, поэтому, возможно, это не тот подход, который подходит для вашего варианта использования ...

reCAPTCHA V3 :

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

Если ваше решение B2B действительно нуждается в его защите любой ценой, вам необходимо использовать брандмауэры веб-приложений (WAF) и решения для анализа поведения пользователей, также известные как UBA, которые используют искусственный интеллект и машинное обучение.чтобы предотвратить злоупотребления, но еще раз они не могут гарантировать 100% блокировку и оба имеют ложные срабатывания.

WAF :

Брандмауэр веб-приложения (или WAF)фильтрует, отслеживает и блокирует HTTP-трафик в веб-приложение и из него.WAF отличается от обычного брандмауэра тем, что WAF может фильтровать содержимое определенных веб-приложений, в то время как обычные брандмауэры служат в качестве шлюза безопасности между серверами.Проверяя HTTP-трафик, он может предотвратить атаки, связанные с недостатками безопасности веб-приложений, такими как внедрение SQL, межсайтовый скриптинг (XSS), включение файлов и неправильная настройка безопасности.

UBA :

Аналитика поведения пользователей (UBA), как определено Gartner, представляет собой процесс кибербезопасности, связанный с обнаружением внутренних угроз, целевых атак и финансового мошенничества.Решения UBA рассматривают модели поведения людей, а затем применяют алгоритмы и статистический анализ для выявления значимых аномалий из этих моделей - аномалий, которые указывают на потенциальные угрозы.Вместо отслеживания устройств или событий безопасности, UBA отслеживает пользователей системы.Платформы больших данных, такие как Apache Hadoop, расширяют функциональность UBA, позволяя им анализировать данные объемом в петабайты для обнаружения внутренних угроз и расширенных постоянных угроз.

Заключение

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

100% -ного решения для сети не существует, так как оно было разработано для работы !!!

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

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

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