2017-03-13 2 views
1

リダイレクトの目的でユーザーのアプリケーションから受け入れたURLをエスケープする必要がありますか(この質問のようにログインが成功した場合)それ以外のセキュリティ上の脆弱性はありますか?ログイン後のエスケープされていないURLへのリダイレクトのセキュリティへの影響

長い質問(コードレビュー): -

私のWebアプリケーションにFacebookのログインを実装している間(passportjs付き)、私はセッションに戻りURLを設定し、小さなミドルウェア機能については、以下のインプリメンテーションに出会いました。

function checkReturnTo(req, res, next) { 
    var returnTo = req.query['returnTo']; 
    if (returnTo) { 
    req.session.returnTo = querystring.unescape(returnTo); 
    } 
    next(); 
} 

上記の 'returnTo' URLをエスケープしないとどうなりますか?

req.session.returnTo = returnTo; 

コードはどちらの場合でも正常に動作します。私はGoogleにしようとしましたが、リダイレクトURL経由で特定の攻撃を見つけることができませんでした。私はそれが良い質問をするだろうと思った。

答えて

1

実際にはsecurity issues with unrestricted redirects after loginがありますが、URLのエスケープとアンエスケープは、それらとは関係ありません。

通常、フレームワークでURLパラメータが正しく抽出され、エスケープされていない場合は、再度エスケープする必要はありません(もちろん、何らかの理由でログインURLを生成するコードがリダイレクトURLを重複してエスケープしない限り)。しかし、私はあなたが使用しているフレームワークに特に精通していないので、何か奇妙な理由のためにここに必要なものがあるかどうかは確かではありません。

関連する問題