【问题标题】:Sanitize LDAP_bind query清理 LDAP_bind 查询
【发布时间】:2011-05-27 05:47:39
【问题描述】:

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

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

【问题讨论】:

标签: php ldap ldapconnection


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我是一个 OpenLDAP 类型的人,但如果我没记错的话,没有办法使用特殊字符来利用它。

    但是,这并不意味着删除您知道不存在的东西不是一个好习惯,尤其是在用户名或生成的绑定路径中。例如:

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

    除小写字母、大写字母、数字、下划线、空格和破折号外,所有内容都会被删除。使用“只允许这个”逻辑而不是“拒绝某些东西”总是更安全。你永远不会想到要拒绝所有的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-07
      • 2021-09-30
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多