2013-02-28 9 views
5

私はAJAXを使用してWeb /モバイルアプリケーションを開発中です。アプリケーションには4ページあります.1つはログイン、3つは保護されたページで、ログインしたユーザーにのみ表示されます。AJAX:シングルページアプリケーション構造/セキュリティ

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

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

もし結果が真であれば、私は保護されたDIVを見えるようにして、サーバーから必要なデータをロードして別のXMLHttpRequestを作成し、別のPHPスクリプトを使ってデータベースとインターフェースします。このステップは、ユーザが他の保護されたページの間をナビゲートするときに繰り返される。私はまた、XMLHttpRequest /内部PHPスクリプトを使用して、ユーザをログインさせ続けるクッキーを実装する予定です。

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

質問:この構造はOK

  • を見ていますか?発生する可能性のある問題は予見していませんか?
  • 構造は安全ですか?私はそれをさらに強くすることができますか?あなたが認証されていないユーザーにデータを提供防ぐために、データの各要求はログインシステムにより保護されていることを確認するよう

enter image description here

+0

JPEGは、このような図を保存するのに最も適した形式ではありません。あなたはHTTPSを使用していますか? –

+0

はい私は、PHPサーバー側のスクリプトでHTTPSを使用しています。 –

答えて

4

その構造は限り大丈夫です。

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

SQLi、XSS(DOMベースのXSS - 反射/保存されたXSSだけでなく)とセッションセキュリティ(セッションハイジャックなど)の面で一般的なウェブアプリのセキュリティに注意することを忘れないでください。

+0

私はSQLiとXSSに注意を払っていますが、DOMとDOMベースのXXSからデータをフラッシュすることを忘れていました。良いリマインダー、ありがとう。 –

関連する問題