0

「ルーター」のように機能するphp関数を作成しました。つまり、いくつかの変数を含むAjax呼び出しを受け取り、適切なメソッドと関数を読み込んでから、JSが処理できるようにデータを返します。

私が利用できるようにしている関数のほとんどは$_SESSION、呼び出し/応答プロセスを通過しない変数を使用しているため、一般的に、適切なセッションがロードされていないと、何も返されません。しかし、私が知る限り、これを回避する方法があるはずです。さらに重要なことに、セッションがロードされていなくても機能する関数を省略している可能性があります。

そのため、セッションへのアクセスを制限する方法を考えていました。私が考えた1つの方法は、ajax呼び出しを介してユーザーIDまたはその他の一意の識別子を呼び出し、それをセッションと比較して、2つが一致する場合にのみ続行することです。

ただし、そうすることでユーザーIDが公開されるため、可能であれば、できるだけ非表示にしておくことをお勧めします。さらに、それが不正なajax呼び出しをブロックするかどうかさえわかりません。

だから私は疑問に思っていました、もっと良い方法はありますか?

ありがとう!

PS重要なのは、jQueryで呼び出しを行っていることです

4

1 に答える 1

0

セッションデータを保護する最善の方法は、サーバーにのみ保存するキーでデータを暗号化することです。セッションデータを取得するたびに、それを復号化し、必要な変更を加えて暗号化してから、に戻します$_SESSION。クライアントが暗号化キーを持っていない限り、データを復号化することはできません(デフォルトではクライアントのCookieに保存されます)。

悪意のあるクライアントが独自に作成または変更したセッションデータを送信しようとした場合、キーを使用して復号化することはできません(暗号化されていないか、別のキーで暗号化されているため)。したがって、セッションデータを想定できます。無効であり、それをクリアします。

PHPでの暗号化の詳細については、この質問を参照してください。

于 2013-01-20T21:47:54.127 に答える