2016-05-17 6 views
-1

Я создаю сайт для какой-либо компании, с которой я работаю. Он включает аутентификацию пользователя. В базе данных хранятся хешированные пароли. Шифрование пароля перед отправкой формы

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

Что приводит меня к вопросу: следует ли использовать Javascript для хэширования пароля перед его отправкой в ​​мой асинхронный запрос, чтобы предотвратить, например, человек-в-середине атаки или тому подобное? Я не знаю, пока что сайт будет использовать HTTPS.

Спасибо.

+7

Если вы отправляете хешированный пароль, а человек в середине перехватывает это ... Ну, угадайте, что им просто нужно отправить тот же хэшированный пароль на сервер, чтобы подражать вашему запросу. ** Если вы отправляете хешированный пароль, то хешированный пароль _is_ ваш пароль. ** Вы ничего не получаете. – deceze

+2

Без HTTPS у вас нет безопасности. Также +1 для @deceze. Безопасность сложна. Будьте осторожны или вы сожжетесь. – Wainage

+0

Это не плохой вопрос, можно найти много учебников, рекомендующих хеширование на стороне клиента, поэтому я не могу понять downvotes. – martinstoeckli

ответ

2

стороне клиента хеширования никогда не сможет заменить на стороне сервера хэширования. Человек в середине может не только использовать «зашифрованный» пароль напрямую, как новый пароль, он также может отменить JavaScript, который шифрует пароль. Хуже того, он мог отправить копию реального пароля на другой сервер, поэтому вы даже не узнали бы об этом.

Единственный вариант для веб-сайта - использовать зашифрованное соединение HTTPS/SSL. Там вы можете отправить открытый текст пароля, SSL позаботится о безопасном транспорте.

+0

Очень полезно, спасибо! –

2

Отправка хешированных паролей не остановит никого, кто нюхает ваше соединение. HTTP-запрос содержит хешированный проход, который явно читается, поскольку сам запрос не зашифрован.

Если вы хотите быть в безопасности от такого рода вещи, использовать HTTPS

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