English 中文(简体)
简单的 PHP 授权/登录功能
原标题:
  • 时间:2009-01-14 17:47:14
  •  标签:

我想第一次在我的网站上实现用户登录。我很乐意构建自己的解决方案,或者实施开源解决方案,但是到目前为止,在我的搜索中没有任何一个包是显而易见的选择。同样,我完全意识到,作为最好的中级PHP程序员,如果我自己滚动解决方案,很可能会错过一些明显的问题,把大门敞开。

有什么建议吗?我们不会谈论超级敏感或付款信息,但同样地,我很想不让人们搞砸我的网站!

requirements are - php based - simple as possible, not need for fancy bells and whistles - not Zend framework, since i ve now rolled my own very basic frameworkthanks to this post

谢谢您的意见。

最佳回答

一些好的安全技巧是

  • never store the an un-encrypted users password in the database
  • never store the users password or even a hash of the password in session or cookie data.
  • If you need to have ensure that the login is secure you have to use https.

我发现这些文章在使用cookies构建登录系统方面非常有帮助:

问题回答

"你会挑瞎自己的眼睛,孩子。"

安全是一件困难的事情。我不想说这个,但你能建立一个安全的简单授权计划的可能性相当低。没有简单的方式。因此,你可能需要开始阅读各种框架/cms和其他地方的认证代码,看看别人是如何做到的,并开始研究。

Here are some links: http://www.topmost.se/personal/articles/casual-cryptography-for-web-developers.htm http://pear.php.net/packages.php?catpid=1

我发现对于某些用途,使用http身份验证来构建我的网站是足够的。我建议以此为起点

由于您已经有自己的基本框架,因此在一些常见的位置包含认证代码并不太困难。

一些优点是

  • Not a lot of code.
  • Does not require cookies or URL rewriting.

缺点

  • Doesn t scale well to more granular access control.
  • No easy way to "log out".

--
bmb

这不是很难,对于初学者来说编码很有趣。

您需要一个存储数据的地方(比如一个 MySQL 数据库)。

你至少应该有一个登录字段和一个密码字段。(例如,密码应该使用sha1()函数加密存储)

现在,您需要显示登录表单。我假设这对您来说是可以的。

每当我们获得登录名和密码时,该做些什么?

查询数据库以查看登录基础与登录表单是否匹配,并且密码基础是否等于sha1(密码表单)。

如果是,你需要设置一些东西,例如会话。

那么在需要登录的页面上,您只需要检查是否有一个会话设置即可。

这是基础;然后您可以添加一些级别等等。





相关问题
热门标签