Ответ 1
Если вы хотите добавить возможность входа пользователя на свой сайт (то есть аутентификацию и авторизацию), используйте существующую инфраструктуру. Если вы не являетесь экспертом в области безопасности, вероятность написания защищенной системы близка к 0. Это применяется независимо от языка, в котором вы программируете, и независимо от используемой структуры.
К сожалению, я видел, как люди отвечали на этот вопрос следующим образом: "Это не так сложно и весело для кода, как новичок. Вам нужно место для хранения ваших данных (скажем, базы данных mysql). ENCRYPTED версии паролей и т.д. И т.д." Этот ответ ПОЛНОСТЬЮ НЕПРАВИЛЬНО.
Существуют свободные рамки аутентификации, ИСПОЛЬЗУЙТЕ ИХ. Например, Django и web2py имеют встроенные системы аутентификации. Многие фреймворки не имеют встроенной аутентификации (например, Flask, webpy); это не означает, что вы должны развернуть свою собственную структуру. Это просто означает, что вы должны найти стороннее программное обеспечение для проверки подлинности. Для Flask существует флажок-логин.
Итак, ответ на мои исходные вопросы:
1.) Да, или интегрируйте проверенную стороннюю программную систему.
2.) Да, лучшие практики говорят, что НЕ НАПИСАЙТЕ СВОЮ СИСТЕМУ АУТЕНТИФИКАЦИИ. Используйте тот, который уже был построен.
3.) Вам не нужно руководство для создания системы проверки подлинности, потому что вы не должны создавать ее. Однако OWASP - отличный ресурс безопасности.
Вот краткое резюме: Не записывайте свою собственную систему аутентификации. Используйте надежную систему аутентификации. Если у кого-нибудь есть рекомендации для систем аутентификации, которые можно использовать с Python, не стесняйтесь публиковать их.