关于用户登出(退出)(logout)的问题

北上广深 发布于 2015/12/08 08:36
阅读 548
收藏 0
很多网站的logout都只是一个链接,需要避免CSRF么?有什么现成的解决方案么?
加载中
0
xuqingkai
xuqingkai

可做不用做

一般不需要避免,因为提权限有利可图后果严重,这种退出顶多是捣乱。

0
酱哥哥
酱哥哥
退出,不用做CSRF,因为不会涉及信息安全的问题
0
fly2xiang
fly2xiang
做成post请求的
0
1
1505412718
退出的目的是让服务器销毁会话信息,链接只是通知服务器的一种手段
0
eechen
eechen
做一下吧,也不难.
login.php?action=out&uid=1024&csrf_token=xxx
处理时比对退出链接里的$_GET['csrf_token']和会话里的$_SESSION['csrf_token'],一致则执行退出操作.

csrf_token生成规则也很简单,在用户登录时生成一个随机数:
$_SESSION['csrf_token'] = md5($uid.uniqid(mt_rand(), true));

不想用会话存储,你还可以用cookie存储,都是可以的:
setcookie('csrf_token', md5($uid.uniqid(mt_rand(), true)));
这时就是拿$_GET['csrf_token']跟$_COOKIE['csrf_token']比对了.
返回顶部
顶部