【问题标题】:Rolling out a web authentication system推出网络身份验证系统
【发布时间】:2012-04-23 04:05:42
【问题描述】:

我正在构建一个需要用户身份验证和授权的网站。我最初的想法是使用 Flask 框架编写应用程序。但是,I learned that Flask doesn't have a built in authentication system。它确实有一个扩展烧瓶登录,但我还没有得到任何关于这个扩展是否写得好的确认。我读到很容易弄错身份验证。

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

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

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

谢谢大家!

【问题讨论】:

  • 永远,永远,永远不要尝试推出自己的身份验证方案。 +1 提问。
  • @AdamLiss 除非你知道你必须这样做,并且你知道如何让它变得非常强大并且其他人正在付钱给你。
  • 看来我将使用预构建的身份验证系统。到目前为止,感谢您提供的出色答案。安德烈和伊格纳西奥,感谢您的关注,但无需进一步寻求这些选项。
  • 事情是,我知道一个伟大的预建的身份验证系统...
  • @Mike:FAS 可以满足您的所有需求,包括大多数您可能想要的东西,以及一些您一开始不知道自己想要的东西。 python-fedora 是它的客户。

标签: python security


【解决方案1】:

如果您想为您的网站添加用户登录功能(即身份验证和授权),请使用现有框架。除非您是安全专家,否则编写安全系统的概率接近于 0。无论您使用何种编程语言和使用何种框架,这都适用。

不幸的是,我看到人们这样回答这个问题:“作为初学者,这并不难,而且编码很有趣。你需要一个地方来存储你的数据(比如说一个 mysql 数据库)。你应该存储密码的加密版本等。”这个答案是完全错误的。

有可用的免费身份验证框架,请使用它们。例如,Django 和 web2py 具有内置的身份验证系统。许多框架没有内置身份验证(例如 Flask、webpy);这并不意味着您应该推出自己的框架。这只是意味着您应该找到第 3 方身份验证软件。对于 Flask,有 Flask-login。

所以,我原来的问题的答案是:

1.) 是,或集成经过验证的第 3 方软件系统。

2.) 是的,最佳做法是不要编写自己的身份验证系统。使用已经构建好的。

3.) 您不应该需要构建身份验证系统的指南,因为您不应该构建一个。但是,OWASP 是一个很好的安全资源。

这是一个简短的摘要: 不要编写自己的身份验证系统。使用受信任的预构建身份验证系统。如果有人对可与 Python 一起使用的身份验证系统有任何建议,请随时发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2012-04-12
    • 2011-03-01
    相关资源
    最近更新 更多