假设一个应用程序可以配置为使用LDAP服务器 - 无论是ActiveDirectory还是OpenLDAP等 - 用于验证其用户并检索有关它们的一些其他信息以进行授权 . 应用程序绑定到LDAP服务器的方式也是可配置的 - 它可以使用简单绑定或SASL绑定,具体取决于LDAP服务器支持的内容和总体安全要求 .
它并非总是如此;即使提供了一个空的密码,其中非空的密码实际上是预期的,也可能发生简单的绑定成功 . 根据RFC about LDAP authentication methods,使用非空用户名和空密码的简单绑定被解释为使用匿名授权 Build 未经身份验证的连接的意图 . 可以将服务器配置为使用unwillingToPerform失败,但也可以允许它们 .
问题是:在这样的场景中,应用程序可以配置为使用各种LDAP服务器,并以可配置的方式绑定 - 简单或通过SASL - 有一种方法可以明确地检查用户针对该特定输入的凭据LDAP服务器,除了尝试与这些凭据绑定之外,假设简单的绑定可能导致误报?
谢谢,我期待着你的回复 .
2 回答
当然,你所要做的就是不允许,或者甚至只记得密码为空的情况?
至少在PHP中,你只需要这样做:
您的里程可能因其他语言而异,但这对我有用 .