4

私は、セッション メモリ ストアを使用して認証を処理している Express 上に構築された非常に単純な node.js アプリを持っています。基本的に、ユーザーは次の方法でログインします。

app.post('/sessions', function(req, res) {
            // check username/password and if valid set authenticated to true
        if (authenticated){
            req.session.user = req.body.username;
                } ...
});

次に、ブラウザーからの呼び出しごとに、requireLogin ミドルウェア関数が呼び出され、セッションのユーザー プロパティが設定されているかどうかが確認されます。

私は今、基本的にはブラウザで消費されるかもしれないし、されないかもしれないサービスを提供するようにアプリを移行しています. /sessions) は、ユーザーのアカウントに関連付けられた一時的なランダム トークンを返します。このトークンは、サービスにアクセスするために一定期間使用できます。サービスを使用するには、各呼び出しに有効なトークンを含める必要があります。(トークンを取得するための呼び出し後にパスワードをクライアントのコンピューターのメモリに保存する必要がないように、毎回ユーザー名/パスワードを渡すよりも良いと思いますか?)

そのようなシステムは基本的に上記の現在のシステムと同じくらい安全ですか、それともこれを処理するためのより標準的/安全な方法はありますか? このようなものを処理する標準的な方法は何ですか?

助けてくれてありがとう!

4

1 に答える 1

6

あなたが探しているものは HMAC と呼ばれ、サービスに実装する方法についてのアイデアを得るための素晴らしい記事がここにあります。

セッションベースのセキュリティが公開/秘密鍵ペアよりも安全かどうかについては、広く議論されており、実際には実装/アプリケーションに依存しています. あなたの場合、パブリックに面した API でリクエストごとの認証が必要なため、HMAC が最適です。

于 2012-07-26T15:24:49.390 に答える