ale*_*lex 1 php mysql security kohana cross-domain
我有一个Mothership域,如果您登录它,将在数据库中为您的登录创建一个令牌,其中包含用户ID,创建日期时间,到期日期时间和用户代理.到期时间设置为令牌生成后一小时(在用户登录时创建).
为了能够从Mothership登录到Scoutship,我附加了一个类似的查询字符串
<a href="http://www.spaceship.com?user=ahs6588ads6d8das">go to spaceship</a>
Run Code Online (Sandbox Code Playgroud)
然后在scoutship上,它像这样查找数据库:
$query = "SELECT user_id FROM user_tokens
WHERE token = $tokenFromUrl
AND user_agent = $thisUserAgent
AND expires > NOW()
LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
如果找到匹配项,则会登录用户,然后发送位置标头以删除查询字符串.
显然,如果有人访问了该URL,它将以任何人的身份登录(如果它们是在旧网站登录的小时内到达,并且具有相同的用户代理字符串).这对我来说听起来并不安全.
有没有办法加强这种安全性?我应该在数据库中有一个列,has_auto_logged_in并为第一次查找设置为TRUE,并在此之后拒绝所有传入的请求?
非常感谢
这就是我想出的
因此,如果A人在网站上并且B人(黑客),那么唯一能够击败这一点的方法就是
除此之外还有更多你能做的吗?你可能会把我的AJAX脚本放到一个新的哈希并更新链接,但这比它的价值更麻烦吗?
尝试一下nonce.我甚至为这样的东西保留了一张桌子
当用户将被重定向时,根据时间,用户ID等创建随机哈希.通过URL发送.当URL重定向并尝试在另一侧登录用户时,它会检查nonce是否在数据库中.如果是,则将用户登录并删除现时.如果不是,则拒绝用户.
您甚至可以添加到期日.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |