随机算法在APP安全中的重要性
在展开文章之前,先给大家看一段代码:
坑 is here
setnx('Auth:' . $token, $uid);
if( !$do )
$app->response("Sorry, server is busy...");
$app->response("Hello, ".$uid."'s auth token is ".$token);
get('Auth:' . $token);
echo "Hello, You are logged in as ".$uid;
分析
上述代码, 逻辑上并无太大问题,一般业务一秒钟能登录超过8999个用户的可能性也不太大,所以基本上能满足大多业务的APP授权需求。
可是这块代码真没有安全问题吗?
有。
随机生成算法太弱。
假设小明同学在1464158564这个时间点登录了应用,那么 md5( "1464158564" . rand( 1000, 9999 ) ) 中,除去了时间戳外就只有1000~9999是破解的变量了。只需猜8999次即可获取小明的账户权限。
改进建议
首先将随机因子加多,头部加尾变也加,然后长度远远大于可猜解的范围,加大暴力破解难度。
哈希算法改成非哈希算法,比如php的password_hash()函数替代md5(),相同因子不同次生成的密文不一致,即可以一定程度避免重复,也能无限维度加大破解难度。
setnx('Auth:' . $token, $uid);
if( !$do )
$app->response("Sorry, server is busy...");
$app->response("Hello, ".$uid."'s auth token is ".$token);
get('Auth:' . $token);
echo "Hello, You are logged in as ".$uid;
来源: IT乐吧: 随机算法在APP安全中的重要性
关键字:安全
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!