创建登录系统的最佳方法是什么?

时间:2010-05-28 00:00:00

标签: php login-system

我一直想知道我创建的登录系统是否容易受到攻击。

与许多其他程序员一样,我也使用会话来保存特定的令牌令牌以了解登录状态。 Cookie用于保存用户名或甚至保存状态。

我想知道的是,这是正确的方法吗?有没有比这更好的方法?

3 个答案:

答案 0 :(得分:1)

您可以在会话中创建自己的自定义检查。确保它是由相同的用户代理和相同的IP地址创建的。

除此之外,会议非常可靠。

在登录部分,您可以执行以下操作:

$_SESSION['_user_agent'] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['_remote_addr'] = $_SERVER['REMOTE_ADDR'];

然后你可以检查每个请求:

function sessionIsOK ()
{
    return ($_SESSION['_user_agent'] == $_SERVER['HTTP_USER_AGENT'] &&
        $_SESSION['_remote_addr'] == $_SERVER['REMOTE_ADDR']);
}

答案 1 :(得分:0)

我认为您使用https是否重要:如果您使用的是http而不是https,那么系统会有许多漏洞:例如:重播,中间人/接力。

答案 2 :(得分:0)

常见PHP登录系统的替代方案是HTTP身份验证。这不需要使用会话/ cookie。特别是HTTP摘要式身份验证比未加密的< form>更安全。登录。 (大多数共享托管服务提供商不提供SSL。如果,大多数FLOSS webapps很少设置它。)

然而,存在一些可用性缺点,只能通过使用大量DHTML / AJAX来缓解这些缺点。它会略微降低服务器性能。最重要的是:对于大多数程序员来说,实现起来太难了。

如果一个简单的PHP登录系统就足够了,取决于你的应用程序的类型。