如何以最安全的方式处理用户授权?

时间:2010-06-12 14:58:09

标签: php security codeigniter login authorization

我正在开发一个小网站,我将允许用户创建帐户,但在涉及授权的安全性方面我很无能为力。

我使用codeigniter在PHP中构建了我的项目,并找到了一个可以为我处理授权的库(Tank Auth)。它以安全的方式存储密码,但当用户将密码发送到我的服务器时,我仍然担心该部分。

一种简单的方法是在后期请求中发送密码,但我猜想嗅探这样的密码非常容易。在将密码发送到我的服务器之前,我应该在客户端使用密码吗?还有什么好的javascript库吗?

4 个答案:

答案 0 :(得分:2)

正如其他人所说,SSL是首选的方式。

David Wotever提到哈希 - 对流程的详细讨论here

另一种方法是完全依赖外部提供商来处理您的身份验证 - openid是最明显的候选者。

HTH

下进行。

答案 1 :(得分:1)

您可以使用客户端散列进行混乱,但一般来说,通过安全(HTTPS)连接POST凭据就足够了。

这仍然存在MITM攻击的可能性......但是对SSL连接执行MITM攻击并非完全无关紧要,因此它可能不是您需要过多关注的攻击媒介。

答案 2 :(得分:1)

你说SSL对你来说太贵了,但是大多数主机免费提供它。昂贵的部分是获得私人IP地址和正式证书。

但是,您可以创建自己的证书,这意味着所有细节仍然安全传输,这只是您的身份无法保证。正如David Wolever所提到的,MITM攻击要难得多;无论如何可能不是业余爱好网站的关注点。

一旦(如果)您的网站发展成为一种业余爱好,那么您可以投资一个有保证的证书。

答案 3 :(得分:0)

通过SSL进行身份验证可能是最简单,最安全的方式。

如果你用rot13等加密它,它很容易撤销。

如上所述,您可能希望确保您网站的安全性不依赖于Javascript,因为可以轻松关闭它。

在客户端执行的任何其他操作都很容易被破坏。