清理LDAP_bind查询

时间:2010-12-17 16:40:54

标签: php ldap ldapconnection

我知道当我从用户输入的数据中查询PHP中的MySQL数据库时,应该清理数据。对于我正在启动的项目,我将使用ldap_bind()函数对Active Directory进行身份验证以便使用登录。

我已经采取措施检查密码以防止匿名绑定尝试,但我想知道是否需要采取任何其他预防措施,就像我在使用用户输入的数据时通常采取的那样。或者这是Active Directory会自行处理的事情吗?

2 个答案:

答案 0 :(得分:4)

我是OpenLDAP的那种人,但是如果我没弄错的话就没有办法利用特殊字符来利用它。

然而,这并不意味着剥离您不知道的东西并不是一个好习惯,特别是在用户名或生成的绑定路径中。例如:

$ myname = preg_replace(“/ [^ a-zA-Z0-9_ \ - ] /”,“”,$ myname);

除了小写,大写,数字,下划线,空格和短划线之外,它会删除所有内容。使用“仅允许此”逻辑而不是“拒绝某些东西”总是更安全。你永远不会想到所有要拒绝的东西。

答案 1 :(得分:2)

小心验证密码不为空。听起来很傻,但根据LDAP标准,使用用户名和无密码的绑定被视为匿名绑定,并且会成功。

如果您使用绑定尝试的成功/失败来验证用户凭据,那么空密码将是伪造它的好方法。