2012-10-31 36 views
0

我正在寻找安全的用户认证到我的网站的最佳方式。php:使用cookie /用户认证

我正在考虑以下解决方案:

第一次登录:要求登录数据 - >生成散列码,包括IP地址,密码和cookie的到期日期 - >存储该哈希码数据库,而且到一个cookie 。

next login:检查cookie,在我的用户数据库中查找hashcode。

那会是最安全的方式吗?或者使用cookie会出现问题? 谢谢

+0

您是试图更换PHP会话还是试图实现“记住我”功能? –

+0

他尝试添加身份验证功能。 –

回答

1

通常,您会希望在浏览器中存储一个cookie,指向数据库中的某个记录,表示他是已知的用户。您需要确保的一件事是该Cookie ID是全球唯一的。所以,是的,对各种独特属性使用散列(或md5或sha1)很可能就足够了。将unique放在数据库中的该列上也是一个好主意。

另一个想法是在用户表中为cookieid设置一个列,在创建条目时确保该条目的唯一性。那么每次用户登录时都要使用它。如果你想清理Cookies,如果你真的担心安全问题,你可以每隔一段时间为每个用户使用后端脚本更改该列的所有值。

will there be problems using cookies?

除了新的HTML5功能是无法兼容所有浏览器,饼干真的保存登录信息的唯一途径。去你使用的一个大网站,易趣,亚马逊,wellfargo。擦除所有的Cookie和私人数据,然后去那里登录。然后查看你的cookies。他们在那里放什么?如果这对那些家伙来说足够好,那对你来说可能已经足够了。

1

最好和最简单的方法是使用php会话。

<?php 
session_start(); 
$_SESSION["user"] = "foo"; 
$_SESSION["ip"] = "123.132.123.132"; 
?> 
+0

不错,但会话将过期,直到下次登录或? – Fuxi

+0

会话只是指向存储在服务器端的一组保存的键/值对的唯一Cookie。无论如何,会话都依赖于Cookie。它们也在浏览会话结束时终止。 – Landon

+0

当然。凭证保存在数据库中,当用户输入他的用户名和密码时,会生成一个新的会话。 –