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) 

Centos 5 连接到 Windows 2008 服务器(Active Directory)

4

1 回答 1

2

简单的 BIND 共有三种类型:

  • 匿名的
  • 未经身份验证
  • 认证

使用具有零长度密码的名称是unauthenticatedBIND。LDAP 标准文档声明该名称将用于“跟踪目的”并且不能用于身份验证,因此没有进行身份验证。

现代、专业品质的服务器可以选择拒绝未经身份验证的简单 BIND 请求,因为不进行身份验证。您的服务器可能并非如此。

于 2012-07-31T21:36:06.067 回答