5

PHP で、1 ページ目に LDAP 接続があるとします。

$ldapconn = ldap_connect($ldapserver);
if ($ldapconn) {
      // binding to ldap server
      $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
}
// do stuff here

すべてがうまくいき、実際に何かを行うことができると仮定すると、ユーザーが2番目のページをクリックしたときに、ユーザー名/パスワードを使用してldap_bindを再度実行する必要がないように、このバインドを保存するにはどうすればよいですか. 本質的に、セキュリティ上の理由から回避できる場合はセッションにパスワードを保存したくありませんが、他のページで再利用できるように接続を維持したいと考えています。

4

3 に答える 3

3

PHP LDAP は永続的な接続をサポートしていません。実行している LDAP クエリの種類と頻度に応じて、ユーザー名/パスワードを暗号化された状態で保存するデータベースを常に設定し、ID をセッション内のそのレコードに保持することができます (保存するのは良い考えではありません)。ユーザー名/パスワード)。hereの回答と同様です。おそらく、あなたがやろうとしていることをさらに広げれば、それを達成する方法についてより良い方向に導くのに役立つでしょう. ログインを検証するだけの場合は、LDAP に対して検証されたら、検証済みであることを示す値をセッションに入れることができます。

于 2012-11-16T19:13:38.373 に答える
0

私が過去に行ったことは、LDAPサーバーを制御できる場合、読み取り権限のみを持つ「クエリ」ユーザーがいることです。これをグローバルとして構成ファイルまたはデータベースに保存し、簡単なクエリを実行する必要があるときはいつでもこのアカウントですべてのバインドを実行し、初期認証でのみユーザー名とパスワードを使用します。

于 2012-11-16T19:16:02.593 に答える
-1

別の解決策は、ログインしているかどうかを再確認する代わりに、ユーザーがログインしていることを示す文字列を使用してCookieまたはセッションを作成することです。

次に、新しいページで、そのセッションが存在するかどうかを確認します。タイムアウトを追加して、ログインしたCookieがたとえば10分以内に更新されない場合に期限切れになるようにします。

于 2012-11-16T19:17:55.043 に答える