1

我正计划制作一些动态 PHP 网站,我需要一个免费的身份验证系统,允许我为这些网站的管理员创建控制面板。它应该包含:

  • 记住密码
  • 忘记密码
  • 每个特定时间间隔的最大登录尝试次数
  • 用户管理

谢谢。

4

4 回答 4

3

一些安全注意事项:为了避免许多属于 OWASP webapp 攻击分类列表的身份验证和授权组的问题,请使用您选择的 Web 框架中已经实现的用户身份验证子系统。他们可能已经编写了涵盖许多与身份验证和会话相关的问题的安全代码,并且可能比您自己滚动的任何东西都安全得多。

如果您绝对肯定地必须推出自己的身份验证,或者如果您希望评估另一个身份;那么您/他们必须遵守这些规则。

  • 实现一个适当随机且不可猜测的会话 id 以在会话 cookie 中使用。
  • 不允许强制使用会话 ID。
  • 当权限或凭据发生更改(例如,用户被升级到更高的安全性,用户更改了他们的密码)然后立即使会话无效并开始新的会话。
  • 提供注销功能,并在注销时使会话无效。
  • 将 cookie 设置为 HttpOnly
  • 始终在不使用后使会话过期,并且不要通过将用户重新连接到他们旧的 http 会话来实现“让我保持登录”。
  • 确保 2 个会话不能同时具有相同的会话 ID
  • 确保在会话无效时销毁所有会话数据。出现的新用户可能恰好被分配了一个以前使用过的会话 ID。此新会话不得访问先前针对该会话 ID 设置的会话数据。
于 2010-02-23T12:57:27.470 回答
1

有很多脚本可以做到这一点,如果你对 PHP 很认真,你应该能够编写自己的身份验证脚本。

有大量资源可帮助您开始、查看或简单地使用 google ' php authentication '(或类似的东西)。

http://net.tutsplus.com/videos/screencasts/how-to-build-a-login-system-for-a-simple-website/ http://www.devarticles.com/c/a/MySQL/ PHP-MySQL-and-Authentication-101/

但是,您应该始终对在线资源持保留态度,许多资源不会涉及用户管理的安全方面,例如 XSS 等

您可能还想查看一些内置身份验证库的 PHP 框架,例如CakePHPZend Framework

于 2010-02-22T23:33:55.343 回答
1

没有最好的,也没有可以是脚本的严肃解决方案。身份验证是一项全局策略,因此必须与整个网站集成。要么自己编写代码,要么使用实现它的框架。

如果您开始编写自己的实现代码,请记住您的第一次尝试只能用于非敏感数据,因为它们会很弱(但对于休闲网站来说已经足够了)。

Stoosh 有一些你可能想要关注的好线索。

请记住,这并不像看起来那么简单,显而易见的解决方案可能不太安全。但同样,您可能不需要 CIA 风格的安全性,所以不要紧张并享受学习编程的乐趣。

于 2010-02-22T23:41:07.133 回答
0

作为初学者,我建议使用谷歌搜索教程,并考虑使用像Zend Framework这样的 PHP 框架。

身份验证是似乎 90% 的初学者开发人员想要使用预打包解决方案的事情之一,但这些都不够。

编写自己的代码将提高您作为开发人员的能力,并教您许多核心 Web 开发术语和技术,例如:

  • 跨站脚本
  • 加密安全散列
  • HTTPS/SSL
  • CSRF
于 2010-02-22T23:24:43.057 回答