0

現在、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})

     ) 

そして、ページをレンダリングする前に、が true かroutes.coffeeどうかを確認します。@logged

しかし、これはせいぜい大ざっぱなセキュリティだと思います。誰かがコンソールを起動して、フラグをtrue自分自身に設定できませんでしたか?

バックボーンとファイアベースでセッションを行う適切な方法を知っている人はいますか?

4

1 に答える 1

1

クライアント側でセキュリティを保証する方法は基本的にありません。賢いハッカーは、GUI に設定した制限 (@logged を true に設定するなど) をいつでも回避できます。

代わりに、認証されていないユーザーが想定外のデータを変更できないように、Firebase 側でセキュリティ ルールを設定する必要があります。こうすれば、ハッカーが GUI をいじっても、実際にはアクセスしてはならないものにアクセスしたり、変更したりすることはできません。

ここに Firebase の認証とセキュリティ ルールの概要があります: https://www.firebase.com/docs/security-quickstart.html

于 2013-06-30T19:02:13.343 に答える