0

別のシステムからのログイン認証を使用し、次の特性を持つPHPのモジュールに取り組んでいます。

  • ログインはフォーム送信によって行われます。フォーム送信はユーザーログインに基づいて行われ、バックエンド処理に基づいてサブモジュールのさまざまなセットにアクセスできます。
  • ページの相互作用はすべてjQueryで行われます。バックエンドとの通信はすべてAjaxで行われます。
  • サブモジュールにはレポートとCRUDフォームが含まれ、それぞれにアクセス制御が必要です。たとえば、1つの部門はレポートAを表示できませんが、レポートBは表示できますが、別の部門は両方を表示できます。フォームは特定のグループで厳密に利用できます。
  • すべてのAJAXリクエストはJSONを返します

バックエンドでACLを理解することはできましたが、AJAXリクエストを保護するかどうかはわかりません。
私が思いつくことができる最善の方法は、ユーザーごと、サブモジュールごとにAPIキーを用意し、すべてのリクエストでユーザーセッションをチェックすることです。

明確にするために、ログインプロセスは別のシステムに制限されているため、触れることができません。私はCookieを取得し、他のシステムにクエリを実行して、Cookieがログインしているかどうかを確認することしかできませんでした。

このようなシナリオでAJAXセキュリティを強化するにはどうしますか?

4

2 に答える 2

1

バックエンドでACLを理解できました

はい、できます…そしてしなければなりません。クライアントが何かにアクセスすることを許可されているかどうかをクライアントが教えてくれると信頼することはできません。

しかし、AJAXリクエストを保護することについてはよくわかりません。

Ajaxリクエストは、JavaScriptによって作成された単なるHTTPリクエストです。それらを保護する場合の唯一の違いは、作成するJavaScriptが「許可拒否」応答用に準備されている必要があることです(ユーザーに適切なメッセージを表示できるようにするため)。

私が思いつくことができる最善の方法は、ユーザーごと、サブモジュールごとにAPIキーを用意し、すべてのリクエストでユーザーセッションをチェックすることです。

通常は、セッションを使用してユーザーのログインステータスを追跡し、ユーザーがレベル/ロールにアクセスします。あなたはあなたがクッキーにアクセスできると言います、それらを使ってください。

于 2012-05-30T12:34:40.690 に答える
0

基本的に、httpリクエストのセキュリティを確保することは、ajaxであろうとなかろうと、常に同じです。

チェックにはさまざまな種類があります。

  • データの整合性:サーバーがデータを受信したときにインジェクションの可能性をチェックしますが、間接的なインジェクションを回避するために、クライアントがデータを受信したときにデータをチェックする必要があります。
  • データの発信元:送信者を確認し、可能であればSSLを使用します。

rgds。

于 2012-05-30T12:31:13.243 に答える