PHP中的身份验证/访问控制

时间:2010-02-26 03:28:46

标签: php authentication

前段时间我创建了这个基于LAMP的网站。当时我编写了自己的用户身份验证和访问控制系统。它检查用户是否使用正确的密码登录,以及他/她是否具有访问给定页面的正确权限级别。状态信息通过PHP会话处理,而用户名,盐渍,散列密码和用户级别存储在MySQL后端。所有用户输入都已清理等。用户必须访问站点wtith SSL。

问题在于我开始猜测自己,并且对安全问题变得偏执。所以我正在寻找改善它的方法。

你能给我一些建议:

  • 我可以实施并针对它运行的一些全面的安全测试列表
  • 实施此类系统的最佳做法

是否有一个强大的开源框架或库集,您可以推荐使用而不是本土的?传统观点认为,采用成熟的,经过测试的系统通常比从头开始编写自己的系统更好。你会推荐什么?

2 个答案:

答案 0 :(得分:3)

1)由于您已经从头开始编写自己的内容,因此我不会将其浪费掉,浪费您的时间和精力来集成新的外部开源框架。 其他人编写的代码可能没有必要比你的代码更好,而且你可能无法完全理解如何正确地集成它,因为你可能会为你的应用程序添加更多的漏洞。

2)这是一个很好的简短的3页指南(不幸的是它是意大利语,但您可以使用Google翻译工具栏来翻译所有页面) 无论如何你说你似乎不是PHP编程的新手,我会推荐:

  • 消毒输入(但你说你做了)
  • 在玩DB时至少使用addslshes(或mysql_real_escape_string)
  • php.ini config:REGISTER_GLOBALS应为Off
  • 小心如何设置ERROR_REPORTING,它可能会在遇到错误时打印出私人数据

答案 1 :(得分:1)

Zend框架内置了身份验证,尽管Zend往往有点臃肿。可以只使用Zend的一些部分,但我从未尝试过仅使用Authentication位。

PEAR中还有一些身份验证库 - PEAR :: Auth处于稳定版本,PEAR :: LiveUser处于测试阶段,并于2008年上次发布(测试版)。

我希望这会给你一个良好的开端。