2010-01-25 149 views
0

什么是安全登录?我如何在PHP中开发一个?请记住,我只是PHP的初学者。使用安全登录PHP

+0

这只是登录或整个认证过程(登记,验证,登录,管理) – yretuta 2010-01-25 05:10:06

回答

3

我建议让OpenID解决方案合并到您的网站中。

例如:PHP OpenID Library

比OpenID的其他,this article会给你一个PHP登录的基础知识一个良好的开端

1

安全登录系统通常并不比给用户一个cookie更多(请参阅php会话),然后在每个“安全”页面上检查该cookie。用户可以通过登录来获取这些信息,您可以通过openid或通过存储用户名和密码来完成此操作。

2

一个更好的问题是:如何调用一个PHP登录应用程序“安全”?

这里有一些指针(我很新的PHP太多,所以请多多包涵)

  1. 安全连接(通过SSL)
  2. 当存储到数据库(单向散列哈希密码建议)
  3. 验证 - 确保您征收一定的字符数限制(最大/最小的密码,用户名,电子邮件等),字符是你所期望的格式...等...

这里正在实施NS

  1. 重定向你http://www.site.com/loginpage.php到像https://yoursite.com/login.php
  2. 哈希密码=研究MD5与盐散列,或者如果你想使您的生活更轻松,使用phpass(不需要盐,单向散列,由内置“亲”)
  3. 验证 - 使用PHP的buiilt的验证功能,或者构建自己的正则表达式(或更好,但使用验证库)

抱歉,资源没有链接,但谷歌-ING起来是很容易

+2

在这个时代,有这么多卓越的哈希算法,为什么我们继续推动MD5?这就像给群众兜售IE6一样。从技术上讲,它应该早已被人遗忘了。 – 2010-01-25 05:13:18

+1

SHA1是我使用的 – JasonDavis 2010-01-25 05:22:54

+0

我非常感兴趣,除了md5以外,还有其他使用盐的哈希方法吗?我目前正在使用phpass,所以除了md5之外,不知道其他什么 – yretuta 2010-01-25 06:03:59

1

只添加到上述点 -

之一,以防止在PHP登录和依赖于数据库访问一般是sql注入的形式最重要的事情。

Wiki article

Brief example

这种最常见的消毒不好的输入发生。使用mysql_real_escape_string()提供一般保护。随着OOP在PHP 5中的出现,考虑在PHP服务器执行它们时使用PHP的PDO扩展来生成参数化的sql语句是非常有利的。

An explanation and examples of PDO in PHP

+0

要添加到DeaconDesparado所说的内容中,如果您为mysql使用预准备语句,则会自动清理SQL注入。 – 2010-07-06 21:00:06