gpt4 book ai didi

PHP - ldap_search() 过滤器。如何搜索用户

转载 作者:可可西里 更新时间:2023-11-01 00:27:31 27 4
gpt4 key购买 nike

$_SERVER['REMOTE_USER'] 返回登录到 Active Directory 的用户的用户名。我想使用 ldap_search() 检索此用户信息。

这是我现在拥有的:

$ad = // ldap_connection id
$filter = "(|(sn=$username*)(givenname=$username*))";
$attr = array("displayname", "mail", "mobile", "homephone", "telephonenumber", "streetaddress", "postalcode", "physicaldeliveryofficename", "l");
$dn = // OU, DC etc..

ldap_search($ad,$dn,$filter,$attr);

它有效,但我不确定如果两个用户的名字几乎相同,它是否有效。我如何只搜索他们唯一的用户名,以便我总是只得到一个用户?

最佳答案

sAMAccountName 是 Active Directory 中使用的用户名属性,因此 (&(objectClass=user)(sAMAccountName=%s)) 将是要检查的正确过滤器给定用户名的 LDAP(%s 自然被实际用户名替换)。

请注意,您需要处理 $username 中的特殊字符以避免格式错误的过滤器或最坏的恶意 LDAP 注入(inject)(参见 RFC 2254):

Any control characters with an ACII code < 32 as well as the characters with special meaning in LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a backslash followed by two hex digits representing the hexadecimal value of the character.

关于PHP - ldap_search() 过滤器。如何搜索用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com