2017-06-21 3 views
2

私は一日中答えを探していて、助けてくれたものは何も見つかりませんでした。レスキューアプリケーションでrails APIを使ってセキュリティを管理するにはどうすればよいですか?

私は現在、ReactとRails APIで開発されたプラットフォームで作業しています。 My Rails APIは、devise-tokenを使用してセキュリティと認証を処理しています(https://github.com/lynndylanhurley/devise_token_auth)。 私はReact-Reduxを使用していません。

リアクションフロントエンドには、公開ページ(ログインなど)とプライベートページがあり、ログインが必要です(有効なアクセストークン)。

私はセッションストレージにこれらの3つのパラメータ(ログイン応答から来る)をアクセストークン、uidとクライアントを保存しています、そして、アクセストークンは各要求のヘッダーで送られます。ユーザーがログインしている

  1. たら、セッションストレージでもjavascriptオブジェクトで応答を格納します。これは私が考えていたものです

    。そのオブジェクトは、ユーザーがページをリフレッシュしたり、ページを閉じて再オープンしたりしない限りそこにあります。

  2. ユーザーがプライベートページに移動するたびに、反応ルータがコンポーネントを返す前に、私のLoggedInUser javascriptオブジェクトに何かがあるかどうかチェックします。何もない場合は、セッション記憶領域のコンテンツを持つ「validate_token」エンドポイントを呼び出します。なぜなら、それは戻りユーザーだからです。有効な場合は、 "LoggedInUser"というjavascriptオブジェクトに保存します。そうでない場合は、ログインページにリダイレクトしてください。
  3. LoggedInUserオブジェクトまたはセッションストレージに何も持っていない場合、私はログインにリダイレクトします。

私の質問は以下のとおりです。

  1. 我々は常にJavaScriptの変数とAJAXコール(クライアント側)について話している場合、私は、私のプライベートページを安全にする方法は?権限のないユーザーがjavascriptファイルをデバッグし、 "LoggedInUser"オブジェクトにコンテンツを作成し、自分のプライベートページを見ることができます。無効なトークンを含むすべてのリクエストは401を返しますが、HTMLや静的ファイル、およびAPIへの既存のリクエストは引き続き表示されるため、ユーザーはコンテンツを見ることができません。

ありがとうございました!すべてのpkgにあっバンドルされている場合は

答えて

0

がどのように私は

安全な私のプライベート・ページを作ることができ、あなたが傾きます。ただし、テンプレートを提供して、許可されたユーザーに対してのみサーバーからデータをロードすることができます。

別のオプション:サーバー上の

ホストプライベートアプリ、およびのみ許可ユーザーにそれを提供します。 Webpackでは、必要に応じて特定のモジュールを読み込むことができます(遅延読み込み)。私は、この技術を使用することで、不正なユーザーのために一部のモジュールが提供されるのを防ぐことができると確信しています。

しかし論理は、サーバー側で実行する必要があります。

https://webpack.js.org/guides/lazy-load-react/

関連する問題