2016-10-18 6 views
0

В настоящее время я создаю несколько веб-приложений (построенных как SPA с помощью Angular), подключенных к API. Эти приложения и API используют SSL.SSL: Нужно ли защищать каждую конечную точку

Недавно некоторые из наших клиентов должны были подключиться к нашему API для целей аутентификации (используя грант Credentials для пароля владельца ресурса от OAuth2), но его сайт не является с использованием SSL.

Так что мой вопрос связан с безопасностью. Если API использует SSL, но источник запроса (веб-сайт моего клиента) нет, являются ли данные отправлены в API безопасными?

Использование учетных данных пароля владельца ресурса Предоставление от OAuth2, учетные данные пользователя фактически отправляются как POST в API. Эти ДОЛЖНЫ быть зашифрованы (атака «человек-в-середине»).

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

ответ

1

Если ваш API доступен только через SSL, и если клиент правильно (!!) проверяет ваш сертификат, чтобы предотвратить попадание человека в средние атаки, тогда данные, переданные между клиентом (т.е. сервером ваших клиентов) и вашим API, защищены но только для этого соединения. Эта защита не распространяется на данные, отправляемые на самом веб-сайте в виде обычного текста, то есть логин пользователем:

user(browser) <-- http --> website of client <-- https --> API 
        ^^^^^^       ^^^^^^^ 
        INSECURE       SECURE 

Это означает, что пароль, отправленный пользователем на сайт клиентов, а затем пересылаются на ваш API защищен на втором этапе, но не в первом.

+0

Спасибо за ваш ответ. Таким образом, фактическое поведение заключается в том, что на веб-сайте клиента будет форма входа. При отправке данные будут передаваться асинхронно (Ajax) в API. Безопасны ли данные в этом случае? – lkartono

+0

@lkartono: транспорт данных защищен только от веб-сайта до вашего API, а не между браузером и веб-сайтом. Это означает, что они явно не защищены, поскольку они могут быть перехвачены злоумышленником между браузером и веб-сайтом. –

+0

Имеет большой смысл. Благодаря :) – lkartono

1

Здесь на участие два разных обстоятельства, как показано ниже.

1) Пользователь обменивается информацией с вашими веб-сайтами клиентов. (незащищенный канал)

Как вы говорите, веб-сайт клиента не использует SSL, это означает, что вся личная информация конечных пользователей будет передана в обычный текст, а киберпреступники могут легко получить доступ к данные, действуя «человек в середине», подслушивание и другие кибератаки.

2) Данные веб-сайта клиента обмениваются данными с API. (безопасный канал)

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

Смежные вопросы