Как обрабатывать публикацию учетных данных пользователя во время входа через пользовательский интерфейс в API

Я возился с созданием внешнего интерфейса приложения angular, который общается с REST API (ядро .net). Вопрос, который у меня есть на данный момент, касается того, как мне обрабатывать конфиденциальную информацию (имя пользователя/пароль), когда я отправляю данные в API?

Например, сейчас у меня есть внешний интерфейс, который отправляет имя пользователя/пароль в виде обычного текста в теле запроса. Это кажется плохим и не кажется мне безопасным ВООБЩЕ, потому что, если у вас открыты инструменты разработчика, вы можете увидеть кредиты в теле сообщения, например:

{
  "username": "test",
  "password": "test"
}

Затем на бэкэнде я делаю это и сравниваю результат с тем, что сохранено в БД:

string hash = Convert.ToBase64String(KeyDerivation.Pbkdf2(
    password: password,
    salt: salt,
    prf: KeyDerivationPrf.HMACSHA1,
    iterationCount: 10000,
    numBytesRequested: 128 / 8
));

Если это совпадение, я отправляю токен, и Боб — ваш дядя, вы вошли в систему.

Как я могу лучше отправлять кредиты из моего UI -> API?

Спасибо!


person Nick Orlowski    schedule 19.10.2020    source источник


Ответы (1)


Отправка имени пользователя и пароля в основном выполняется при выполнении Http-сообщения.

Запуск вашего приложения на ssl (Https) гарантирует, что ваша передача данных не будет перехвачена.

person Ayush Vipul    schedule 19.10.2020
comment
Так что похоже, что я поступаю правильно, и мне просто нужно реализовать кое-что из ssl, если я использую это для производства. Спасибо за информацию, похоже я что-то не так делаю. - person Nick Orlowski; 20.10.2020