【问题标题】:Actively maintained PHP libraries for user authentication? [closed]积极维护用于用户身份验证的 PHP 库? [关闭]
【发布时间】:2010-09-29 15:59:41
【问题描述】:

我知道滚动您自己的用户身份验证脚本的风险,但我也对使用似乎没有得到积极维护的软件包保持警惕:current version of PEAR LiveUser 已经快一年了。

请推荐(并提出理由)一个积极维护的用户身份验证库,该库可以集成到现有的 Web 项目中。理想情况下,它应该支持各种角色——匿名用户、注册用户和不同级别的管理员。

【问题讨论】:

  • 推出自己的系统不一定是个坏主意。只要确保您的系统是一个好的系统。这确实意味着几个月的研究和仔细思考,但它可以完成,你会学到很多东西。或者如果你没有时间,那就找别人的。但是,如果你不知道如何创建自己的系统……你怎么知道别人的系统有多好? :)
  • 您可能想看看github.com/delight-im/PHP-Auth,它既与框架无关,也与数据库无关。

标签: php security authentication


【解决方案1】:

听起来您想要的是用户控件库,而不是身份验证库。

例如,在Zend Framework 中有两个类:Zend_Auth(处理用户身份验证:登录(例如simple database tablesOpenID))和Zend_Acl(处理用户访问方面的事情) )。

我非常喜欢 ZF 类 - 我没有尝试在 ZF 项目之外使用它们,但他们的大多数类都可以尝试一下。即使您决定自己构建它们,它们也可以作为参考。

【讨论】:

    【解决方案2】:

    在我看来 PEAR 并没有太大变化,因为它很稳定。我不会害怕使用它。

    【讨论】:

      【解决方案3】:

      http://ulogin.sourceforge.net/

      非常安全且经过深思熟虑。它也非常可配置。

      【讨论】:

      • 文档在哪里?不好用,安装出错。
      【解决方案4】:

      当使用 md5(); 将密码存储在 mysql 数据库中的表上。

      请记住,从登录表单检查输入的密码时,将需要相同的过程,而不是数据库中的密码。

      哈希生成函数的另一个例子是

      sha1();

      你总是可以包装这两个函数并创建一个简单的哈希生成方法

      $string = md5(sha1($string));

      返回$字符串; // 返回哈希值

      也可以使用 salt() 函数,它在一定程度上允许您自己的“公钥”。

      salt("mystring123", "jz");

      【讨论】:

      • 执行md5(sha1($string)) 只会增加冲突率并降低您的应用程序的安全性。您应该只使用 sha1,或者如果这还不够,请尝试 sha 256 或 sha 512 算法
      • Salting 密码字符串应该与一些哈希函数一起使用。这不是另一种方法。
      • 不要将 md5() 添加到 sha1() 中,反之亦然。您正在浪费 CPU 周期,而正面收益为零,实际上可能使您的安全性变得更糟。只需使用 sha1 代替(它比 md5 更好)。并且盐/随机密码生成器不是 sha1/md5 的 替代,它们在处理密码时应该始终 sha1/md5 一起使用。请帮自己一个忙,并进一步阅读。
      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2010-10-09
      相关资源
      最近更新 更多