6

AJAX を使用して Web/モバイル アプリに取り組んでいます。アプリケーションには 4 つのページがあります。ログイン 1 ページと、ログインしているユーザーにのみ表示される 3 つの保護されたページです。

シングル ページ アプリケーション パターンを使用する予定です。そのため、4 ページすべてがすぐに読み込まれ、それぞれが独自の DIV ID 内にあり、最初はログイン ページのみが表示されます。

ユーザーがユーザー/パスを入力すると、XMLHttpRequest を作成し、内部 PHP スクリプトと通信します。内部 PHP スクリプトは、準備されたステートメントを使用してユーザー/パスがデータベースに存在するかどうかを確認し、XMLHttpRequest に true または false を返します。

結果が true の場合は、保護された DIV を表示してサーバーから必要なデータを読み込み、別の XMLHttpRequest を作成し、別の PHP スクリプトを使用してデータベースとやり取りします。この手順は、ユーザーが他の保護されたページ間を移動するときに繰り返されます。また、XMLHttpRequest/内部 PHP スクリプトを使用して、ユーザーがログインし続けるために Cookie を実装することも計画しています。

以下に、プロセスを説明する画像があります。

質問:

  • この構造は大丈夫ですか?私が予測していない問題が発生する可能性はありますか?
  • 構造は安全ですか?それをさらに強化する方法はありますか?

ここに画像の説明を入力

4

1 に答える 1

4

認証されていないユーザーにデータが提供されるのを防ぐために、データに対する各要求がログイン システムによって保護されていることを確認する限り、この構造は問題ありません。

また、ユーザーがログアウトするときに、DOM からすべてのデータをフラッシュする必要があります。window.location.reload()これは、ページを強制的に更新するか、データを含むすべての DOM ノードを手動で削除して変数を上書きすることで簡単に実行できます。アプリを使用しているユーザーがログアウトした後、別のユーザーが同じデバイスを使用するようになったとします。ログアウト時にデータをフラッシュしないと、認証されていない 2 番目のユーザーが Firebug/Chrome Dev Tools などの DOM ツールを開いて、最後のユーザーの機密データを表示する可能性があります。

SQLi、XSS (リフレクション/ストアド XSS だけでなく、DOM ベースの XSS を含む)、およびセッション セキュリティ (セッション ハイジャックなど) に関する一般的な Web アプリケーション セキュリティに注意を払うことを忘れないでください。

于 2013-02-28T17:18:22.223 に答える