15

我正在构建一个需要用户身份验证和授权的站点。我最初的想法是使用 Flask 框架编写应用程序。但是,我了解到 Flask 没有内置的身份验证系统。它确实有一个扩展烧瓶登录,但我还没有得到任何关于这个扩展是否写得好的确认。我读过很容易弄错身份验证。

  1. 切换到 Django 或 web2py 之类的东西可能是个好主意,它们确实内置了身份验证系统?

  2. 优秀的 Web 程序员通常会选择使用经过验证的真实身份验证系统,而不是尝试推出自己的身份验证系统吗?

  3. 是否有一个很好的指南来展示有关构建身份验证/授权系统的最佳实践?

多谢你们!

4

1 回答 1

6

如果您想为您的网站添加用户登录功能(即身份验证和授权),请使用现有框架。除非您是安全专家,否则编写安全系统的概率接近于 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.

于 2012-04-11T19:42:22.887 回答