我正在开发需要与我的服务器通信的Chrome扩展。我正在使用Google Server端的oauth进行身份验证。当用户首次安装扩展时,他需要使用google登录,并且在oauth服务器端流动后,我的服务器向用户发送我的扩展存储在本地存储中的unqiueid。随后对我的服务器的每个请求都是一个post请求,其中uuid是有效负载的一部分,用于对用户进行身份验证。现在这个场景的问题是,我不确定这种技术有多安全,因为我相信任何人都可以将别人的uuid存储在本地存储中,从而能够访问其他人的帐户。我知道我可以在我的服务器和客户端之间使用ssl来请求请求,以防止从我的服务器窃听请求/响应,但是即使我有私人访问其他人的计算机的权限,我也可以轻松地复制uuid。我想知道是否有任何更好的扩展身份验证方式,而不要求用户每次打算使用我的扩展时都使用oauth登录。唯一标识请求来自我的扩展的特定安装
0
A
回答
1
我假设你只想将这个UUID存储一段指定的时间。毕竟,您为用户获得的访问令牌可能会在以后被撤销。
但是,在授权登录期间,您可以通过'noncing'来更安全地使用UUID,以及有关客户端的其他“独特”信息,例如IP地址和会话cookie。因此,将一组唯一标识的信息基本连接在一起,然后在存储到客户端之前使用公钥对其进行签名。同样的事情也太:
token = encrypt: UUID + client IP + sessionID
而在服务器端,你会怎么做:
raw = decrypt: token
UUID = uuidPart: raw
assignedIP = ipPart: raw
assignedSessionID = idPart: raw
verifyMatch: assignedIP, currentIP
verifyMatch: assignedSessionID, currentSessionID
要成功地伪装成另一个用户,被攻击需要有两个令牌,也是IP为同原始客户端,这比您以前的设置更安全一些。
相关问题
- 1. Chrome扩展程序,如何唯一标识扩展程序安装
- 2. Flash安装的唯一标识符
- 3. 如何唯一标识请求?
- 4. NodeJS Express - 全球唯一请求标识
- 5. HTTP请求可以唯一标识吗?
- 6. 剥离的.html来自请求扩展和重定向的.html请求.aspx页
- 7. 唯一标识Windows Phone安装
- 8. 来自特定IP的API请求
- 9. vs代码 - 回滚扩展/安装特定扩展版本
- 10. Firefox自定义扩展安装程序
- 11. Firefox扩展自动安装
- 12. Symfony2的请求国际扩展其已经安装
- 13. 的唯一ID,每个Firefox和Chrome扩展安装
- 14. 来自Chrome扩展的注入脚本中的跨域请求
- 15. Rails引用自定义唯一标识
- 16. HTTP请求中的唯一标识信息?
- 17. sharepoint中页面请求的唯一标识
- 18. 来自Chrome扩展程序的HTTP发布请求被取消
- 19. 查找来自Firefox扩展的所有URL请求
- 20. 来自Chrome扩展程序的跨浏览器请求与OAuth.io
- 21. PHP - 如何限制仅来自Chrome扩展的请求?
- 22. 拦截来自chrome扩展的HTTP请求体
- 23. 扩展.json的Http请求
- 24. 如何在Visual Studio中安装特定的扩展版本
- 25. 安装PHP的PARADOX扩展
- 26. Magento的扩展安装
- 27. 安装Jupyter扩展
- 28. 安装MSBuild扩展
- 29. Joomla扩展安装
- 30. Chrome扩展chrome.webRequest API - 一些HTTP请求头中的请求头
我是密码学的新手,并没有理解这将如何防止简单的剪切和粘贴攻击。请原谅我,如果我错了,但不会nonce使uuid无用,下一次我的客户端尝试使用uuid登录作为会话cookie和/或ipaddress可能会不同。如果你能详细说明你的答案,那将是非常棒的。 – 2012-03-17 09:35:58
我在答复中添加了更多信息。你计划多久保留这些uuid? – Perception 2012-03-17 10:27:55
我打算将uuid保留多少天,因为访问令牌有效或直到用户注销。我使用了两个类似的书签扩展。他们使用oauth进行身份验证,但我不需要每次都登录到他们。我只需要登录时,我清除我的缓存或x天后。示例 - > diigo书签扩展,保存到脉冲等 – 2012-03-17 10:48:36