【发布时间】:2009-04-03 09:17:30
【问题描述】:
我正在构建一个应用程序,它将存储我们的一些客户详细信息,例如用户名/密码,我们需要记住并确保安全的信息。
安全存储这些信息的最佳方法是什么?
【问题讨论】:
标签: php mysql security administration
我正在构建一个应用程序,它将存储我们的一些客户详细信息,例如用户名/密码,我们需要记住并确保安全的信息。
安全存储这些信息的最佳方法是什么?
【问题讨论】:
标签: php mysql security administration
这样一个开放式的问题,没有太多细节可以继续。我建议您在继续之前阅读 Chris Shiflett 的出色“Essential PHP Security”。简明扼要,非常实用。
本书的网站http://phpsecurity.org/也提供了相当数量的建议
【讨论】:
如果您想在不进行大量研究的情况下快速设置 PHP 安全性,那么 PHP 框架将是一个好主意。
我是CodeIgniter 的粉丝,但其他选项包括CakePHP 和Zend。
使用安全框架意味着您可以立即获得经过验证的方法,但是学习该框架可能需要一些时间和精力。
【讨论】:
其实很简单。设置一个快速的 MySQL 数据库和一个用户表。在该用户表中,将用户名存储在一列中,并将密码的哈希版本存储在另一列中。
为了增加安全性,我喜欢生成一个随机的 8 个字符串并将其存储在每一行中 - 我称该列为“Keycode”。当用户使用正确的用户名/密码登录时,我将他们的身份验证存储在会话变量中,AS WELL 作为匹配的“Keycode”。
这样,会话认证不仅可以查找正确的用户名/密码,还可以快速查询db,并检查会话变量中存储的“Keycode”是否与行中的keycode相同。
它运作良好,因为甚至用户都不知道他们的键码。
【讨论】:
就密码而言,您应该存储密码的哈希值。每当您对用户进行身份验证时,您都会对他们输入的密码进行哈希处理,并将结果与您存储的内容进行比较。这样您就不会存储实际密码。
【讨论】: