2016-06-30 9 views
0

私のドメイン内のすべてのルートで動作するCSRF攻撃から保護するために、krakenjs/luscaを使用したエクスプレスアプリがあります。しかし、私はまた、任意のドメインからアプリケーションにPOSTするために使用できるようにしたいクロム拡張機能を持っています。私の研究から、私は私がトークンベースの認証を使用する必要があると考えているので、私は2つの質問がありますブラウザエクステンションからのCSRFトークン

  1. 私はどのように生成し、拡張子からの要求を認証するために アプリを許可する拡張子にそのトークンを送信する必要がありますか?
  2. どのようにしてそのトークンを拡張子で保存する必要がありますか?

サーバーがリクエストするAPIとローカルストレージに依存するトークンのストレージに関する懸念があることが判明しました(私の問題を解決するとは思わないが、ドメイン)。私は助けていただきありがとうございます!ありがとうございました。

答えて

0
  1. エクステンションを100%保護することはできませんが、他の人が予期しない方法で使用することを制限する方法があります。最も簡単な解決策は、JsonWebTokenを使用することです。サーバは、{email: '[email protected]'、created_date:new Date()}のような予め定義された構造を有するオブジェクトを暗号化し、それをエクステンションに送り返す。サーバーは、内線番号の要求を受け取ると、応答する前にトークンの復号化を試み、データが有効かどうかを確認します(あらかじめ定義された形式に従います)。より安全にするには、認証を行う必要があります。ユーザーがGoogleにまずログインして、実際にトークンを発行する前に自分が誰であるかを確認してください... OAuth2がどのように参照を取得するかを調べることをお勧めします。

  2. 拡張子にトークンを格納するオプションはいくつかあります。私はchrome.storage.sync https://developer.chrome.com/extensions/storage#property-syncに保存する方が好きです。拡張子が最初にロードされるとき、トークンが格納されているかどうかをチェックし、トークンがない場合はトークンを取得する必要があります。

+0

ありがとう、私はそれを感謝します。 1つのこと - jwtを提供するサーバー側のルートを公開することに心配すべきですか? –