Является ли плохой практикой передавать пароль без хеширования в качестве параметра функции? - PullRequest
0 голосов
/ 01 октября 2019

Я переписываю полноценную программу Node.js, которая поддерживает аутентификацию пользователей. У меня есть три соответствующих модуля:
- api Где определены маршруты Express.js
- models Где определены схемы
- services Который обрабатывает всю бизнес-логику

Скажите, что я хочу обработать регистрацию пользователя. Класс api/UserRoute получит веб-запрос на регистрацию пользователя. Затем UserRoute вызовет класс UserService для регистрации пользователя, который, в свою очередь, сохранит данные в базе данных через класс models/UserModel. Теперь вот мой вопрос:

На каком этапе должен быть хеширован пароль? Должен ли он быть хеширован на стороне клиента, прежде чем он будет отправлен как веб-запрос? Будет ли плохой практикой разрешать UserService хэшировать пароль?

В настоящее время я бы позволил UserService хэшировать пароль, а затем передать его в базу данных для хранения, но я не уверен, еслиЯ делаю свое приложение уязвимым, если пароль до этого не хэшировался.

Какой-то псевдокод того, что я планирую:

// UserRoutes
app.post('/register', (req,res) => {
    UserService.registerUser(req.email, req.password)
})
// UserService
registerUser(email, password) {
    const hashed = Auth.hashPassword(password)
    UserModel.create({... User Data Here...})
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...