【发布时间】:2010-08-02 12:32:44
【问题描述】:
我正在实现一个通过soap 服务器/客户端交互在后端供电的Web 应用程序。该网站通过 https 运行,并且由 LDAP 提供身份验证。
到目前为止,我推送所有没有 cookie 的用户,将其称为“userHash”以供参考登录页面。登录页面接受用户名,通过并检查 ldap 以进行验证。如果它验证我在我的会话中存储用户名、用户 IP 地址和时间戳。
最后我构造了一个 cookie 和会话哈希信息:
SESSION['userHash'] = sha1($username.$userip.$timestamp);
cookie['userHash'] = sha1($username.$userip.$timestamp);
这样,在任何后续请求中,我都会验证用户拥有与会话匹配值的 cookie userHash['userHash']
此设置安全吗?
此外,我想防止暴力攻击,并打算实现一个简单的数据库表来记录失败的尝试。目前我正在考虑:
id | username | timestamp | ipaddress | count
作为表格。这是最好的方法还是有更好的方法?例如,我在这张表中看到,如果我将失败尝试限制为每 24 小时 3 次,那么攻击者可以从同一个 Ip 尝试每个用户名 3 次。 (附带说明:此应用程序预计将用于可能位于子网上的学校计算机实验室,因此会显示来自同一 IP 地址的多个登录,因此我需要小心何时根据 IP 地址进行阻止。 )
另一方面,我想知道是否有类似“拒绝主机”的 http 身份验证?
【问题讨论】:
-
您可能会在 serverfault.com 上得到更好的答案
-
谢谢 我会在那里尝试,因为我正在编写应用程序,我认为在这里会更合适,但也可以在那里尝试!