如果您想为您的网站添加用户登录功能(即身份验证和授权),请使用现有框架。除非您是安全专家,否则编写安全系统的概率接近于 0。无论您使用何种编程语言和使用何种框架,这都适用。
不幸的是,我看到人们这样回答这个问题:“作为初学者,这并不难,而且编码很有趣。你需要一个地方来存储你的数据(比如说一个 mysql 数据库)。你应该存储加密版本的密码等。” 这个答案是完全错误的。
有可用的免费身份验证框架,请使用它们。例如,Django 和 web2py 具有内置的身份验证系统。许多框架没有内置身份验证(例如 Flask、webpy);这并不意味着您应该推出自己的框架。这只是意味着您应该找到第 3 方身份验证软件。对于 Flask,有 Flask-login。
所以,我原来的问题的答案是:
1.) 是,或集成经过验证的第 3 方软件系统。
2.) 是的,最佳实践表明不要编写自己的身份验证系统。使用已经构建好的。
3.) 您不应该需要构建身份验证系统的指南,因为您不应该构建一个。然而,OWASP是一个很好的安全资源。
Here's a brief summary:
Do not write your own authentication system. Use a pre-built authentication system that is trusted. If anyone has any recommendations for authentication systems that can be used with Python, feel free to post them.