我正在开发一个小网站,我将允许用户创建帐户,但在涉及授权的安全性方面我很无能为力。
我使用codeigniter在PHP中构建了我的项目,并找到了一个可以为我处理授权的库(Tank Auth)。它以安全的方式存储密码,但当用户将密码发送到我的服务器时,我仍然担心该部分。
一种简单的方法是在后期请求中发送密码,但我猜想嗅探这样的密码非常容易。在将密码发送到我的服务器之前,我应该在客户端使用密码吗?还有什么好的javascript库吗?
答案 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,因为可以轻松关闭它。
在客户端执行的任何其他操作都很容易被破坏。