2012-07-31 51 views
0

我在使用PHP LDAP時發生了奇怪的事情LDAP PHP Centos

我的用戶名和密碼會正確驗證,但如果我只輸入一個沒有密碼的用戶名,它也會返回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) 

CentOS 5的連接到Windows 2008服務器(Active Directory)中

+1

這有幫助嗎? http://www.webdeveloper.com/forum/showthread.php?t=202622 – Matt 2012-07-31 20:35:56

回答

2

有三種類型的簡單綁定的:

  • 匿名
  • 未經驗證的
  • 認證

使用帶零長度密碼的名稱是一個unauthenticated BIND。 LDAP標準文檔聲明該名稱將用於「跟蹤目的」,並且不能用於認證,因此不會進行認證。

現代專業品質的服務器可以選擇拒絕未經身份驗證的簡單BIND請求,因爲不進行身份驗證。您的服務器可能並非如此。