Как обезопасить приложение Angular & Spring - PullRequest
0 голосов
/ 25 мая 2018

Мы разработали одно приложение с Angular 5 в качестве внешнего интерфейса и Spring Boot в качестве внутреннего.Первая страница - это страница входа в систему, которая вызывает остальные API для аутентификации с помощью LDAP в бэкэнде.Мы используем реализацию OAuth с JWT.Таким образом, когда пользователь входит в систему, учетные данные пользователя и пароль через.POST-запрос в теле остальных API для аутентификации.В заголовках мы отправляем clientId и секрет для Oauth.Проблема заключается в том, что учетные данные отображаются в запросе и их можно увидеть в настройках браузера.Мне нужен способ замаскировать / зашифровать эти учетные данные.

Ответы [ 2 ]

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

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

Еще есть парачто вы можете сделать:

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

Мне действительно не нравится вариант Hash, так как вы теряете контроль над надежностью пароля, и кто-то теоретически может использовать API и создать пользователя с паролем «Test» или чем-то подобным.

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

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

Вы можете использовать библиотеку cypto-js для шифрования вашего пароля из вашего углового приложения.

Установка:

npm install crypto-js

Использование:

var AES = require("crypto-js/aes");
var SHA256 = require("crypto-js/sha256");
var MD5 = require("crypto-js/md5");
console.log(AES("YOUR PASSWORD"));//AES ENCRYPTION
console.log(SHA256("YOUR PASSWORD"));//SHA256 ENCRYPTION
console.log(MD5("YOUR PASSWORD"));//MD5 ENCRYPTION

Спасибо, надеюсь, это поможет!

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