大家好,我是Yii框架的新手,首先我要做的是创建用户注册/登录系统。我真的希望我的系统安全,但我发现使用cookie并不是最安全的方法。所以我有一些有趣的建议,请记住我不是专业的PHP程序员,所以这个建议可能包含一些错误,但我认为我们会修复它们。
据我所知,当有人访问Yii网站时,首先Yii会尝试获取cookie并检查它是否已经登录。那么为什么我们不能使用数据库而不是cookie?我的意思是我们可以在数据库中包含这些字段:
ip
remember_me
latest_visit
那么,为什么我们不能让Yii检查数据库而不是cookie?我的意思是让Yii检查来自db的mem ip == ip和remember_me == true,并且在7天之前不是最新的。因此,使用此方法进行cookie验证将更好。然后让Yii在cookie验证后做任何事情。
我们将实现的目标是记住非cookie启用浏览器的方法,避免cookie窃取并使用户登录系统更安全,因为每个数据都将存储在服务器端,而客户端则不会存储任何内容。
那怎么办呢?你怎么看?如何让Yii完成任务?
答案 0 :(得分:3)
IP地址无法可靠地识别事物;可以有NAT(网络地址转换)在播放,以便多台机器看起来来自同一地址,更不用说DHCP租约到期,以及不同的人使用一台机器的可能性(孩子使用爸爸的机器?)等等。因此,根据所提供的信息,您无需证明浏览器之前曾访问过您的网站。当然,有些人使用一台机器上的多个浏览器(比如Firefox,Chrome,Safari);一个人的cookie可能不会被其他人使用。
你的建议是不安全的。请不要将其用于生产用途。