【问题标题】:Firebase & Backbone: Application AuthenticationFirebase 和 Backbone:应用程序身份验证
【发布时间】:2016-08-10 18:16:13
【问题描述】:

目前我正在使用firebase 和backbone.marionette 构建一个应用程序,并且我正在尝试实现安全会话。以前,我可以通过在 URL 栏中输入特定路由来简单地绕过登录页面,但为了解决这个问题,我在应用程序中添加了一个初始化程序来检查用户是否登录,如下所示:

    @addInitializer((options) =>
        # Instantiate firebase
        @firebase = new Firebase("https://*******.firebaseIO.com/")

        @authClient = new FirebaseAuthClient @firebase, 
            (error, user) =>
                if (error)
                    console.log(error)
                else if (user)
                    console.log('User ID: ' + user.id + ', Provider: ' + user.provider)
                    @logged = true
                    @trigger('logged_in')
                    @router.navigate('home', {trigger: true})
                else
                    @logged = false
                    @trigger('logged_out')
                    @router.navigate('login', {trigger: true})

     ) 

现在在routes.coffee 中呈现页面之前,我会检查@logged 是否为真。

但我觉得这充其量只是粗略的安全性。难道不能有人自己启动控制台并将标志设置为true吗?

有人知道与骨干网和火力基地进行会话的正确方法吗?

【问题讨论】:

    标签: javascript backbone.js coffeescript session-cookies firebase


    【解决方案1】:

    基本上没有办法保证客户端的安全性。聪明的黑客总能绕过你在 GUI 上设置的任何限制(例如将@logged 设置为 true)。

    相反,您需要在 Firebase 端设置安全规则,以便未经身份验证的用户无法更改他们不应该更改的数据。这样,即使黑客弄乱了您的 GUI,他们也无法真正访问或更改他们不应该更改的任何内容。

    此处概述了 Firebase 身份验证和安全规则: https://www.firebase.com/docs/security-quickstart.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2020-04-01
      • 2018-10-31
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多