Senior level
1) Каким еще способом нужно обезопасить форму? CSRF имеет смысл добавлять?
Это вопрос на самом деле в целом на понимание CSRF вида уязвимости, сеньор должен знать и понимать как это работает. Безусловно, запрос должен быть посылаться с CSRF токеном. Это гарантирует отправку формы тем же клиентом, что её и отобразил.
2) 🚩Что такое 2fa и нужна ли?
Вопрос для сеньора, но мидловский, т.к. 2fa уже прочно вошла в обиход. И будет плохим признаком, если вы ответите wtf. Для серьёзных сервисов - 2fa is a must, даёт серьёзный буст к возможности зайти в вашу учётку даже зная логин и пароль. 2fa - это "второй фактор" = токен - обычно, ваш телефон (апп или смс), но не ограничивается им. Могут быть usb флешки, блютуз девайсы, биометрические сканеры и тп.
3) Храните пароль в базе? Хешированным? Солёным?
Пароль должен быть захеширован, притом важен алгоритм. md5, sha-1 - уже не подходят в текущих реалиях. Используйте bcrypt, PBKDF2 или sha-256. Соль к паролю может быть одна для в всех - не худший вариант. Однако идеально, если соль состоит частично из данных самого пользователя. Плюсом будет, если упомянете о rainbow tables.
4) 🚩Сможете ли сами написать алгоритм для хранения пароля?
Правильный ответ тут - не нужно изобретать криптовелосипеды, если вы не бородатый математик! Слишком просто допустить критическую ошибку в алгоритме и снизить стойкость. Хорошо, если вы сможете привести пример несложного шифрования через XOR, но не более :)
Post #174
449