2016-02-08 2 views
1

У меня есть приложение WebAPI, которое отлично работает. Нет проблем с регистрацией, регистрацией и т. Д. Однако я сталкиваюсь с чем-то, что требует некоторого внимания. Когда кто-то регистрируется или регистрируется, их пароли отправляются простым текстом. Я знаю, что мы можем применить сертификат HTTPS, и это будет разрешено. Тем не менее, я больше ищу решение, где я могу хеш-пароль, и WebAPI может автоматически поднять его. Я не хочу вносить изменения в встроенные функции WebAPI для хэша и хранить PW. Это также должно убедиться, что, когда я использую инструменты разработчика FF или Chrome, никто не может читать PW от отправляемых данных.Отправка хеш-пароля в WebAPI

Я использую Angular или JQuery AJAX для совершения звонков на мой WebAPI.

+1

Любое двустороннее шифрование может быть отменено и не очень безопасно в первую очередь. Вы действительно должны использовать SSL для передачи данных учетной записи пользователя. –

+0

Отправка хешированного пароля не приносит большой пользы; сам хэш становится эффективным паролем. – SLaks

+0

Если ваш злоумышленник может использовать devtools на странице клиента, вы уже потеряли. – SLaks

ответ

0

Можно зашифровать пароль в интерфейсе и отправить хешированный пароль и солить + раунды (при использовании) на сервер.

Проблема возникает, когда пользователь пытается войти в систему, вам нужно получить соль и округления к интерфейсу, хешировать свой пароль (который набрал), отправить его на сервер, там вы сравниваете как hashedPassword == hashedPassword и возвращаете истина/ложь.

Так что, на мой взгляд, это менее безопасно, чем просто все на стороне сервера. Единственное преимущество заключается в том, что никто не может видеть ваш пароль в ваших dev-инструментах или в полезной нагрузке.

+0

Спасибо за объяснение. Я больше ищу способ, которым мне не нужно менять встроенный код для WebAPI для хэширования и хранения в БД. Я пробовал пару хэширования javascripts, таких как SHA1 и md5, которые успешно хэшировали pw, но он не был проверен с помощью WebAPI. – programmerboy

+0

Предполагаю, что вы используете ASP Identity 2.0 (или некоторые другие рамки для управления пользователями). Там вы должны установить опцию, где пароль не хешируется на стороне сервера (поскольку он уже хэширован). Так что это просто конфигурация, а не основной код. – kadoga

+0

Спасибо @kadoga. Я рассмотрю этот вариант. Кстати, мне нужно назначить сертификат SSL для моего WebAPI, или каждый пользователь моего API должен назначить сертификат на свой собственный сайт, чтобы отправить зашифрованную информацию (я угадываю последний). – programmerboy

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