0

PHP LDAP を使用すると奇妙なことが起こります

ユーザー名とパスワードは正しく認証されますが、パスワードなしでユーザー名を入力しただけでも true が返されます。間違ったパスワードでユーザー名を入力すると、正しく失敗します。以下は、私のコードが受け取る応答です。

//Code Wrong Password
$login = ldap_bind( $ds, "Username", "WrongPass" ); 
var_dump($login);

//Response
Warning: ldap_bind(): Unable to bind to server: Invalid credentials in /var/www/sksinternal/httpdocs/LoginCredentials.php on line 36 bool(false) 


//Code correct Password
$login = ldap_bind( $ds, "Username", "CorrectPass" ); 
var_dump($login);

//Response
bool(true)


//Code No Password
$login = ldap_bind( $ds, "Username", "" ); 
var_dump($login);

//Response
bool(true) 

Windows 2008 サーバー (Active Directory) に接続する Centos 5

4

1 に答える 1

2

シンプル BIND には次の 3 つのタイプがあります。

  • 匿名
  • 認証されていない
  • 認証済み

長さゼロのパスワードを含む名前の使用はunauthenticatedBIND です。LDAP 標準ドキュメントでは、名前は「追跡目的」に使用され、認証には使用できないと記載されているため、認証は行われませんでした。

最新のプロ品質のサーバーには、認証が行われないため、認証されていない単純な BIND 要求を拒否するオプションがあります。これは、サーバーには当てはまらない場合があります。

于 2012-07-31T21:36:06.067 に答える