我是这些技术的新手,请原谅我,如果我的一些问题没有意义!
我必须为我的公司开发Web应用程序和移动应用程序.我正在考虑Ionic 2,因为它使用Angular 2,我想在我使用angular 2构建的web-app和使用Ionic 2的移动应用程序之间共享代码,因为它们几乎可以做同样的事情.
我该怎么办?我想保持应用程序的逻辑相同,我只想修改一些关于UI的东西.谢谢!
在使用 OIDC 服务器进行身份验证的单页应用程序 (JavaScript) 的上下文中,保持会话活动(在过期后获取更多令牌)的标准和推荐方法是使用 HttpOnly Cookie 并在 iframe 中执行静默更新。太好了,不涉及刷新令牌,因为浏览器无法保守秘密。
\n现在看来,浏览器将阻止跨域 Cookie(Safari 和 Brave 已经这样做了,Chrome 似乎将是下一个),因此,如果服务器位于不同的域上,那么未来唯一的方法似乎是将刷新令牌与刷新令牌轮换(以及可能的重用检测)结合使用,这似乎可以缓解问题。但真的是这样吗?
\n场景 1)刷新令牌 (RT1) 被盗,用户请求新令牌并由于轮换而取回新的刷新令牌 (RT2)。RT1 现在无效,攻击者无法使用。伟大的。
\n场景 2)刷新令牌 (RT1) 被盗,攻击者执行获取新令牌 (RT2) 的请求,用户使用旧令牌 (RT1),现在所有内容都被丢弃,用户必须再次登录(重用检测)并且攻击者的令牌也无效。伟大的。好吧,我在这里看到了一个问题(用户必须再次登录并且不知道为什么),但至少问题已经解决了。
\n场景 3)这是我在任何地方都没有看到提到的场景。假设攻击者在不使用后续 RT 的情况下窃取了它们,因此它继续窃取 RT1。用户刷新,攻击者也窃取了RT2。一切工作正常,因为攻击者没有使用令牌,但也许他将所有令牌发送到其他地方进行存储。最后,用户关闭窗口,攻击者提取了 RT1 和 RT2。此时,攻击者可以使用最新的RT(RT2)来冒充用户,直到用户返回应用程序。假设他离开一周,攻击者拥有一周新的访问令牌(他可以不断刷新令牌)。直到最后没有人注意到任何事情。有了 Cookie,攻击者只能在浏览器会话期间进行操作,现在它有更多时间进行操作。
\n那么...具有重用检测功能的 RTR 真的足够安全吗?主要论点是“这始终是一个风险/收益的选择”,我明白,但怎么会到了 2020 年,我们仍然遇到浏览器问题呢?你发现我遗漏的第三个场景有什么问题吗?老实说,会话 cookie 一直是最好的选择,事实上浏览器会阻止我们在这种常见场景中使用它们,这一事实让我抓狂:)
\n谢谢。
\n附言。我将在这里复制我找到的有关此问题的一些资源:
\n\n“ RTR 并不是一种包罗万象的安全措施。如果攻击者设法在应用程序关闭之前获取最后一个刷新令牌,他们可能能够继续轮换被盗的刷新令牌。为了避免长期滥用被盗的刷新令牌,安全令牌服务可以将该刷新令牌的生命周期链接到具有安全令牌服务的 user\xe2\x80\x99s 会话的生命周期。这样做会在会话过期时使刷新令牌失效。 ”
\n这是我在场景 3 中提出的观点,但他建议的解决方案是将 RT 链接到用户的会话。那么,我们再次使用会话 …
security authentication access-token openid-connect refresh-token
我正在研究React Native,我正试图弄清楚即使应用程序关闭时如何启用Push Notifications的接收,就像Facebook一样.
我是一名网络开发人员,所以我不习惯移动应用程序的"Manifest"逻辑.我应该从哪里开始?谢谢!
我有一个离子应用程序,我想在登录页面中放置一个"记住我"复选框,这样一旦用户登录,他将永远登录(除非他注销),即使他关闭并重新登录 - 打开应用程序,就像Facebook应用程序一样.在Ionic 2中有没有办法做到这一点?
谢谢!
ionic2 ×2
access-token ×1
angular ×1
mobile ×1
react-native ×1
reactjs ×1
remember-me ×1
security ×1