私には(それほど珍しいことではないと思います)シナリオがあります:
私の PHP アプリは、LDAP サーバーにクエリを実行して認証を処理します。LDAP サーバーは認証されたアクセスのみを受け入れるため、最初の ldap_bind() 呼び出しは実際には認証メカニズムとして使用され、ログインしているユーザーの基本情報を取得します。
ここまでは順調ですね。しかし、LDAP サービスを使用して他のクエリ (ログインしているユーザーや他のユーザーの追加情報など) を実行したい場合は、LDAP 認証を再度行う必要があります。
ユーザーのパスワードが漏洩する可能性があるため、セッションに保存したくありませんが、LDAP サーバーの資格情報を提供するために、要求ごとにユーザーを認証させることはできません。
そこで、次の解決策を考えました。
- LDAP 接続ハンドルをセッションに保存して、毎回資格情報を提供する必要がないようにします。ハンドルはリソースであり、セッション ストレージ用にシリアル化できないため、これは機能しません。
- パスワードをセッションに保存しますが、暗号化します。暗号化シードは、セッション ID のハッシュなどの揮発性変数から派生させることができるため、変数に格納されず、漏洩することはありません。
<Your idea here>
何かご意見は?
ありがとう
gm