auth令牌是否应该对公众可见?

时间:2015-01-22 04:09:59

标签: firebase jwt firebase-security json-web-token rest-firebase

我对firebase安全性和Web开发有点新意,但我在Rails应用程序的服务器端生成JWT。但是,为了将它们传递给firebase,似乎我必须在使用此Javascript代码的视图中传递令牌(存储在db中的users表中):

var ref = new Firebase('https://mysite.firebaseio.com/');
ref.auth('<%= @user.auth_token %>');

这是你应该如何处理身份验证令牌?我认为它可能会失败,因为auth令牌随后可以从页面源查看给用户。

2 个答案:

答案 0 :(得分:2)

Firebase身份验证令牌用于身份,但不用于授权。后者由您的Firebase Security Rules管理,{{3}}将使用当前(以及将来,如果写入)数据状态,结合auth令牌中显示的身份来确定给定的读取或写入操作是允许的。

因此,用户可以查看/访问他们自己的身份验证令牌,但不应该能够查看/访问其他用户的身份验证令牌,因为这样可以允许其他用户(可能是恶意攻击者)冒充用户对应于该身份验证令牌。

答案 1 :(得分:0)

还可以auth token解释here来查看Firebase REST APIs

查询参数auth值也可用,如果有人跟踪http数据包,就像使用wireshark一样,但我想这就是它的使用方式。 JWT auth令牌只是一个字符串。

但是使用Token Generation Libraries可以使用特定的到期时间生成这些JWTs,默认情况下,到期时间为24小时。

  

<强>参考

     

默认情况下,身份验证令牌在发布后24小时到期,客户端将在此时自动进行身份验证。我们可以通过更改登录和放大器上的会话长度设置来覆盖它。 Firebase仪表板的Auth选项卡,或通过提供特定的到期日期创建令牌时单独选项卡。有关详细信息,请参阅您正在使用的特定令牌生成器库的文档。

此外,firebase还提供了指定Definite Rules以访问firebase中数据的方法。See Here

它还提供Data Validation来保持数据的一致性。 See Here