- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看起来 Firebase 在从 v2 迁移到 v3.x SDK(现在又迁移到 v4)时,决定删除自动 session 过期选项,转而采用始终经过身份验证的模型。
这是一个很好的功能,但从网络安全的角度来看,我发现了一些问题,因为这是具有 Firebase 生成的 token (例如 email and password authentication)的 Firebase SDK 的唯一选项(其中一些在链接的谷歌小组讨论中得到了很好的解释)。
通常提供的在页面退出时调用 user.signOut()
的建议存在一些漏洞。也就是说,如果客户端崩溃,则该代码永远不会执行,因此策略就会崩溃。 “页面加载时退出”建议也有漏洞:
user.signOut()
我正在寻找一种从网络安全角度来看做得更好的策略,允许用户选择“始终经过身份验证”的策略(如果他/她选择的话),而不是默认策略(即使用“记住我”按钮)。
我提出的一个策略如下:
这感觉更安全,因为即使浏览器崩溃,onDisconnect
方法仍然会执行。 但是,JWT 不能用作 Firebase 规则变量 ( only the contents of the token )!
鉴于这些问题/有缺陷的方法,如何在浏览器关闭/崩溃后(甚至在预定时间段后)使用 Firebase 生成的 token 使 session 失效?
最佳答案
这里有一个建议:ID token 有一个 auth_time 字段。这是用户进行身份验证的时间,您可以强制设置您想要的任何 session 长度。如果您在服务器上验证 token 或使用 https://firebase.google.com/docs/reference/security/database/#now 通过数据库规则验证 token ,则可以强制执行此操作。和 auth.token.auth_time。检查https://firebase.google.com/docs/reference/security/database/#authtoken .
您需要用户重新进行身份验证才能访问数据。重新验证将更新 token 中的 auth_time。
这是一种更好的方法,因为跟踪所有 ID token 无法很好地扩展,并且 ID token 会在一小时后过期,并且新的 ID token 将在用户返回应用程序后刷新,但会保持相同的 auth_time。
不确定这是否会减轻您的担忧,但 Firebase 正在研究以下功能:
关于session - Firebase session 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958813/
当您在 memcached 中设置 key 过期时,它实际上是在过期时被删除,还是在请求 key 时被删除(get)并且有效期已过。换句话说,过期会自动从 memcached 中删除值,还是简单地将其
Microsoft 是否已将客户端 secret 的有效期更改为最长 2 年?不能再选择“从不”了吗? 最佳答案 我自己也遇到了这个问题。您可以使用Powershell设置添加2年以上的凭据。所以我猜
我正在尝试对我网站上的 csv 文件强制禁止缓存。 我根据 apache 的文档将这些行添加到 httpd.conf: ExpiresActive On ExpiresDefault A0 Expi
我对 Cookie 不熟悉,希望让此 Cookie 在我的注销页面上过期 这是我设置 cookie 的位置: setcookie("loggood", "YES", $expire, "/",
MySQL 是否有某种功能可以在 x 秒后使特定行过期? 例如,我必须以下数据库: users id - integer name - string subscriptions
我的机器上安装了 Matlab Compiler Runtime。它工作正常,但现在当我运行一些需要它的代码时,我得到了这个错误: Failed to initialize MCR Instance:
当我从 PayPal 收到 IPN 时,我不想立即处理它,而是将消息排队,然后使用调度程序处理它。 因此,有一点让我担心 - 如果我将一条消息排队并只处理它(包括'_notify-validate'验
关于 PHP session 过期的问题。 如果该用户有一段时间不活动(出于测试目的,5 秒),我需要我的服务器丢弃 session 信息。 我看过this question尤其是 Gumbo(+28
我有一个 session ,在 30 分钟不活动后或 23.4 小时后被销毁。 我遇到的问题是无论事件如何, session 都会在 30 分钟后被销毁。因此,如果用户在 23.4 小时内一直处于事件
我一直在网上搜索并找到了许多奇怪的答案,而且我几乎尝试了所有这些答案。我的问题是这样的。我的登录页面包含: FormsAuthenticationTicket ticket = new FormsAu
我正在构建一个表单,我必须将数据存储在 HTML5 的 sessionStorage 中 我不知道 sessionStorage 何时过期。谁能告诉我 sessionStorage 的过期时间? 最佳
在我的应用程序中,我有一个必须始终有效的访问 token (Spotify 的)。当此访问 token 过期时,应用必须每 60 分钟刷新一次 token 端点并获取另一个访问 token 。 Aut
我们的办公室有一个简单的闭路电视系统,可以显示我们每个安全摄像头的实时图像。闭路电视系统没有 API 或任何提取实时图像的方法。但是,您可以通过创建带有图像链接的基本 HTML 页面从另一个浏览器查看
我正在基于DotNetOpenAuth实现OAuth2授权/资源服务器。我的服务器将发出生命周期很长的访问 token 。这些 token 将在iOS设备上使用。我看到的流程是这样的:1)要求用户在i
请帮助我在 Varnish 配置中添加过期 header 。 max_age 已在 vcl_fetch 中定义,需要根据 max_age 添加 expires header。 最佳答案 通常不需要设置
我正在开发一个必须使用 session 超时的应用程序。 问题是用户经常错过 session 超时并丢失数据。我已经在 javascript 中实现了一个小型 session 管理器,如果浏览器中有一
我有一个应用程序,可以从我的Instagram帐户中提取数据。 我曾经授权过此应用一次,并获得了访问 token 。但是我很担心 如果该 token 过期怎么办?我是否应该在每次 token 到期?
我在数据表中有多个复选框,它们具有一个名称和不同的值,我可以通过以下代码为所有选中的复选框存储 cookie $(document).ready(function(){ $('i
hibernate 3.3.x、ehcache 2.2.x The following error occurs, when I try to publish a lots of users in a
在 Azure 门户的通知中心的“配置”选项卡上,我能够生成主键和辅助键。我了解这些是获得对 Azure API 的编程访问权限所必需的 - 允许我的客户端应用程序创建注册并发送消息。 谁能解释一下:
我是一名优秀的程序员,十分优秀!