活跃维护的用于用户认证的PHP库?

15

我知道自己编写用户认证脚本的风险,但我也担心使用似乎没有积极维护的软件包:目前的PEAR LiveUser版本已经有将近一年了。

请推荐(并解释)一个可以集成到现有Web项目中的活跃维护的用户身份验证库。它最好支持各种角色-匿名用户、注册用户和不同级别的管理员。


2
自己开发系统并不一定是个坏主意。只要确保你的系统是好的。这意味着需要数月的研究和仔细思考,但是可以做到,并且你会学到很多东西。或者如果你没有时间,那就找别人的。但是如果你不知道如何创建自己的系统...那么你怎么知道别人的系统有多好呢? :) - Abhi Beckert
你可能想要查看 https://github.com/delight-im/PHP-Auth,它既不依赖于框架,也不依赖于数据库。 - caw
4个回答

6
似乎您需要的是用户控件库,而不是认证库。
例如,在Zend Framework中有两个类:Zend_Auth(处理用户身份验证:登录(例如简单数据库表OpenID)和Zend_Acl(处理用户访问方面的事情)。
我非常喜欢ZF类 - 我尝试在ZF项目之外使用它们,但它们的大多数类都可以这样做。即使您决定构建自己的类,它们也会对参考有用。

5

我认为PEAR之所以没有太多变化是因为它很稳定。我不会担心使用它。


3

1
文档在哪里?安装出现错误,无法正常工作。 - devasia2112
我刚刚遇到了一些问题(也许是我使用方法不对?我不知道,因为示例中的注释就是文档),我现在正在寻找其他的东西。 - Trass Vasston

-3

在使用md5()函数将密码存储到mysql数据库表中时,需要记住同样的过程也需要用于检查登录表单中输入的密码是否与数据库中的密码一致。

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

sha1();

您可以始终将这两个函数包装起来,创建一个简单的哈希生成方法

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

返回 $string; // 返回哈希值

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

salt("mystring123", "jz");


1
使用 md5(sha1($string)) 只会增加碰撞率,使您的应用程序不够安全。您应该仅使用 sha1,或者如果不足够,则尝试 sha 256 或 sha 512 算法。 - Petah
1
“Salting”密码字符串应该与某些哈希函数一起使用,这不是另一种方法。 - Tun
1
不要将md5()添加到sha1()或反之。这样做既浪费CPU周期,又可能实际上使您的安全性变差。只需使用sha1即可(它比md5更好)。盐/随机密码生成器不是sha1/md5的*替代品,而是在处理密码时始终应与sha1/md5一起使用的东西。请自行阅读更多相关信息。 - Abhi Beckert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接