作者CindyLinz (Cindy Wang)
看板PHP
标题Re: [请益] 检查是否登入更安全的做法?
时间Sun Aug 28 20:02:54 2011
※ 引述《inventorr (风之子)》之铭言:
: 大家好 想请问一下
: 有些网页需要登入後才可浏览
: 一般都是检查 是否有设定 某个栏位(ex:password) 的cookie or session
: 我个人目前是检查 userid 跟 password 的cookie有没有设定
: 不过现在忽然觉得 只检查有没有设定 是不是安全性有点弱呢
: 因为user可以自己随便设定
: 但如果那些页面都去开资料库检查 userid 与 password是否正确 却又有点觉得不必要
: 不知道大家有没有折衷的想法 (不用session的话)
: 目前有想到对cookie加密
如果你想放的资料, 可以容许被 user 看到, 但是不容许 user 随意修改的话.
(例如说想记录 user 本人的 userid, 代表他已经登入)
那麽你可以在 cookie 里面类似这样存:
$sig = md5("
secret_key.$userid"
);
setcookie("
key_name", "
$sig.$userid"
);
(其中这个「secret_key」是你自己想的一组密码, 不可以外泄)
那麽, 你的系统在收到
$_COOKIE["
key_name"
] 之後,
可以藉由检查这个 md5 计算有没有一致.
如果你想要控制这一组 cookie 只有在一段时间内有效,
你可以把目前时间也存进去:
$time = time();
$sig = md5("
secret_key.$userid.$time"
);
setcookie("
key_name", "
$sig.$userid.$time"
);
然後在收到的时候检查这个时间有没有距离现在时间太远.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.242.246.249
※ 编辑: CindyLinz 来自: 210.242.246.249 (09/10 13:15)