LDAP Bind 似乎返回 true,密码为空

2023-12-08

我有这段代码根据 LDAP 目录对我的用户进行身份验证。当密码不正确时,它返回 false,但如果密码留空,它仍然会对用户进行身份验证。有什么想法可能会发生这种情况吗?

if (@ldap_bind($ds, $user_dn, $password) || sha1($password) == '484h84h4hf4Ffwj49393393j93j') 
{
    $valid = true;
}
else $valid = false;

如果您提供空密码,则表明目录服务器您正在执行匿名简单绑定。 RFC 2251 第 4.2.2 节描述了此行为:

 If no authentication is to be performed, then the simple
 authentication option MUST be chosen, and the password be of zero
 length.  (This is often done by LDAPv2 clients.)  Typically the DN is
 also of zero length.

这可能是 LDAP 客户端中一个非常常见的安全漏洞,因为如果他们不验证用户是否提供了非空密码,而是尝试使用非空 DN 和空密码进行绑定,那么当服务器不绑定为所提供的 DN 指定的用户,而是匿名绑定。由于这是 LDAP 客户端中常见的安全问题,因此某些服务器会拒绝具有非空 DN 但空密码的绑定请求,并且最新的 LDAPv3 规范鼓励这种行为,如 RFC 4513 第 5.1.2 节中所示:

 An LDAP client may use the unauthenticated authentication mechanism
 of the simple Bind method to establish an anonymous authorization
 state by sending a Bind request with a name value (a distinguished
 name in LDAP string form [RFC4514] of non-zero length) and specifying
 the simple authentication choice containing a password value of zero
 length.

 The distinguished name value provided by the client is intended to be
 used for trace (e.g., logging) purposes only.  The value is not to be
 authenticated or otherwise validated (including verification that the
 DN refers to an existing directory object).  The value is not to be
 used (directly or indirectly) for authorization purposes.

 Unauthenticated Bind operations can have significant security issues
 (see Section 6.3.1).  In particular, users intending to perform
 Name/Password Authentication may inadvertently provide an empty
 password and thus cause poorly implemented clients to request
 Unauthenticated access.  Clients SHOULD be implemented to require
 user selection of the Unauthenticated Authentication Mechanism by
 means other than user input of an empty password.  Clients SHOULD
 disallow an empty password input to a Name/Password Authentication
 user interface.  Additionally, Servers SHOULD by default fail
 Unauthenticated Bind requests with a resultCode of
 unwillingToPerform.

听起来你的服务器没有这样做。如果它有这样做的选项,那么我强烈建议将其打开。但无论如何,一个设计良好的 LDAP 客户端使用简单的绑定操作来验证用户凭据,在尝试使用它绑定到服务器之前绝对应该验证用户是否提供了一个非空字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LDAP Bind 似乎返回 true,密码为空 的相关文章

  • Blade 中无法访问请求错误(Laravel 5.2)

    我已经使用 Laravel 好几个月了 但从未遇到过这样的问题 我创建了一个简单的 Request 类来验证更新用户请求 如果遵循验证规则 该请求可以正常工作 如果验证规则失败 我们应该返回上一页并在 html 中显示所有错误 根据我的说法
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • Imagick setColor 不适用于 php

    我尝试将所有像素设置为黑色 但它不起作用 我得到与原始图像相同的图像 这是我的代码 image new Imagick DIR image new jpg i 0 j 0 while i lt 100 j 0 while j lt 100
  • Web.config 将所有路径重定向到index.php - 不起作用

    我主要使用 Apache 和 htaccess 但我目前正在开发一个托管在 Windows 服务器上的网站 Web config 给我带来了很多问题 我试图将所有 URL 请求重定向到 index php 以便 PHP 脚本可以解析 URL
  • PHP SNMP - 找不到模块

    我已启用 SNMP 模块并尝试使用该模块中的功能 我已将 MIBDIRS 环境变量设置为我的 mib 所在的位置 但我仍然收到这些 找不到模块 警告 Cannot find module IP MIB At line 0 in none C
  • 如何在变量中存储包含哈希标记的完整 url?

    我正在尝试存储一个网址 例如 http localhost pro print index php page home http localhost pro print index php page home 在变量中 但我找不到执行此操作
  • laravel 4 登录验证失败

    在 Laravel4 中 我在路由中编写了以下代码 但它总是将我重定向到登录页面 我用谷歌搜索并在堆栈溢出上找到了它 并尝试了所有解决方案但没有成功 我确信这将是一个愚蠢的错误 但请跟踪它 谢谢 Routes Route post logi
  • {{ Auth::user()->name }} 如何在 Blade 文件中打印用户名?

    我一直在 laravel 中使用默认身份验证功能 我在一个刀片文件中发现 Auth user gt name 能够显示存储在用户表中的名称 但我想知道的是它是如何显示的用雄辩的口号在刀锋中呼唤名字 你可以像这样使用它 auth gt use
  • Zend 框架将字母“f”输出到我的页面上

    我已经下载了 Zend 框架稳定版本 我相信是 1 11 上传到我的服务器 并将其添加到我的 php 包含路径中 我的目标是使用 Feed 和 Feed Writer 模块来处理一些 RSS 和 Atom 的繁重工作 问题是 每当我包含 F
  • 如何使用 PHP SDK 在 AWS SES 发送的电子邮件中实现 List-Unsubscribe 标头

    我尝试使用 AWS PHP SDK 添加自定义标头 以便可以实现 List unsubscribe 标头 问题是我找不到任何地方如何实现它 我已阅读文档但什么也没有 http docs aws amazon com aws sdk php
  • Codeigniter:重置表单值

    在我看来 我想要做的是在用户成功注册后清除表单字段 这里一切正常 即用户正在注册 成功消息正在向用户显示 除了我想要做的是清除表单字段的值 我正在使用这个 Clear the form validation field data so th
  • 为什么index.html优先于index.php?

    我在服务器上有一个网站 主页是 example com index php 好的 我将一个名为 index html 的文件上传到服务器 根目录 当我在浏览器的 URL 栏中输入站点的域时 我感到惊讶 因为 index html 页面已加载
  • Magento - 当我的订单取消或退款时如何运行代码

    如果订单被取消或退款 我的支付模块需要向支付服务发送通知 我假设订单页面 在管理后端 上的 取消 按钮将取消订单 而 贷项通知单 按钮 创建发票后 将退还订单 如何针对这些事件运行我的代码 我尝试在付款方式模型中使用 cancel 方法 但
  • 如何使用 Laravel Eloquent 返回多重关系?

    我有一张桌子叫users 每个用户都有不同的事情 country device computer category 我为上述每一个 事物 创建了一个表格 类似如下 1 United States 2 United Kingdom 3 Aus
  • 用于搜索属性的多个值的 ldap 过滤器

    在 AD 中 我有多值属性 departmentNumber 它可以存储多个值 例如 dept1 和 dept2 我正在寻找 ldap 过滤器 它应该检索拥有超过 1 个部门编号的用户 我查看了其他线程 但这似乎不起作用 任何帮助表示赞赏
  • PHP 等级分类器 - 数组的问题[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 您好 我正在开发一个 docker 微服务等级检查器应用程序 我正在从 HttpRequest 获取用户输入 我缺乏一些关于数组的基本知识以
  • 使用php表单更改href链接

    我正在制作一个带有搜索栏的网站 我想让搜索栏在 搜索 并显示结果后具有交互性 所以我希望 href 根据正在使用的 Id 进行更改 例如 有人搜索 Pinecones 如果它在数据库中 它将有一个 ID 在本例中是 4 一旦他们搜索它 它就
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • 如何在 Python 中包含 PHP 脚本?

    我有一个 PHP 脚本 news generator php 当我包含它时 它会抓取一堆新闻项并打印它们 现在 我在我的网站 CGI 中使用 Python 当我使用 PHP 时 我在 新闻 页面上使用了这样的内容 为了简单起见 我删掉了这个
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w

随机推荐

  • 在开发阶段在 Android 上测试 google 登录

    Google 登录始终返回未登录状态 使用 Android studio 在设备上推送应用程序时总是失败 但是 当我安装签名的应用程序时 它可以工作 当我们仍在开发应用程序时 如何使谷歌登录正常工作 在开发时 您可能正在使用调试密钥存储 获
  • h2o.glm lambda 搜索似乎没有迭代所有 lambda

    请考虑以下基本的可重现示例 library h2o h2o init data iris iris hex as h2o iris iris hex mod h2o glm y Sepal Length x setdiff colnames
  • ASP.NET单元测试Windows7/IIS7

    今天花了几个小时尝试针对 ASP NET 项目编写一些单元测试 这是 Visual Studio 2010 将 Windows 7 企业版与 IIS7 结合使用 我采取的步骤是 向解决方案添加了新的测试项目 打开一个类文件作为网站的一部分
  • 如何高效、快速地用 JButton 完全填充 JFrame?

    因此 我正在努力用 Java 重新创建扫雷游戏 现在我需要将 JFrame 上的所有按钮放置在网格中 我的代码如下 import javax swing import java util ArrayList import java awt
  • 如何编辑Streamlit AgGrid行的单元格?

    我已经创建了AgGrid通过从 csv 文件加载数据 我通过外部按钮逐行添加行 但是当我尝试编辑我添加的行时 它消失了 如果您能帮助我找出错误所在 我将不胜感激 代码如下 import pandas as pd import streaml
  • React 事件处理函数无需使用 bind() 即可工作

    我正在学习 React 并且遇到了事件处理程序 在React中 建议将函数绑定到this 然后将其用作事件处理程序 但是 我没有绑定它 但仍然得到所需的输出 下面是我的代码 import React Component from react
  • 使用 Java 卡钱包

    我是一个java卡初学者 从示例中复制了下面的代码 不知何故 我已经知道部分代码是如何工作的 但还是对下面的事情感到困惑 ownerpin 的工作方式以及设置 pin 的方式和时间 如何进行信用和借记工作 我了解平衡是如何运作的 这方面还不
  • 如何在一个应用程序中获取多个图标来启动不同的活动?

    我有一个包含两个活动的应用程序 我希望能够在启动器中显示两个图标 每个图标在应用程序中启动相应的活动 具体来说 我想要一个图标来启动我的主应用程序 另一个图标来启动我的设置活动 这可能吗 这是我到目前为止所尝试过的
  • 复制到输出目录复制文件夹结构但只想复制文件

    我有一个 VS2008 我想将某些文件从目录复制到我的 bin 文件夹 我已经设置了文件 位于 common browserhawk 到 复制到输出目录 但是 它也会复制文件夹结构 文件被复制到 bin common browserhawk
  • 如何对重复标签进行分组,以便在 Chart.js 中创建没有重复的标签

    我似乎无法解决这个问题 我的唱片公司给我发回列表 在我的例子中 我希望只有 HOME40 HOME60 和 PRO 作为标签 但不幸的是它返回了它们的串联 我还想改变颜色 如果产品是HOME40那么颜色必须是绿色 如果是PRO那么颜色必须是
  • java中字节数组到短数组然后再返回

    我在获取存储在字节数组中的音频数据 将其转换为大端短数组 对其进行编码 然后将其更改回字节数组时遇到一些问题 这是我所拥有的 原始音频数据存储在audioBytes2中 我使用相同的格式进行解码 并在 cos 函数上加上减号 不幸的是 更改
  • Gmail 5.0 应用在收到 ACTION_SEND 意图时失败,并显示“附件权限被拒绝”

    我的应用程序创建带有附件的邮件 并使用意图Intent ACTION SEND启动邮件应用程序 它适用于我测试过的所有邮件应用程序 但新的 Gmail 5 0 它适用于 Gmail 4 9 除外 邮件在没有附件的情况下打开 显示错误 附件的
  • 在 Angular/JHipster 应用程序上使用另一个模块的组件

    我正在尝试使用component来自另一个module on an 角5生成的应用程序jhipster When a module其中包含component我想使用的是导入的route of the module发生导入的地方被覆盖rout
  • 在 Woocommerce 中下订单后,将附件添加到管理员电子邮件通知

    下新订单后 我尝试向商店管理员发送 PDF 文件 问题与woocommerce email attachments重点是电子邮件会同时发送给客户和管理员 add filter woocommerce email attachments at
  • 符合 MVC 4 站点 508

    我花了很多时间研究这个 但也许有人指出了我正确的方向 需要构建一个符合 508 标准的 MVC 4 网站 三年前我做了一些 508 合规性测试和标签插入 但我真的想再做一次 其他人用什么 寻找什么标签 什么测试工具 有免费的测试工具吗 AJ
  • iOS 登录/注销在 Swift 中的实现

    我一直在尝试快速实现 iOS 应用程序的登录 注销流程 这是我的故事板 在主视图控制器 即蓝屏 中 我实现了以下代码来检测用户是否已登录 然后自动将它们带到表视图控制器 覆盖 func viewDidAppear animated Bool
  • 作为文本框的 AutoCompleteCustomSource 的列表框项目

    我已使用数据源属性将一些项目填充到列表框中 现在我需要从列表框中列出的项目中为文本框设置 AutoCompleteCustomSource 准确地说 ListBox 的 DataSource 和 textBox 的 AutoComplete
  • 将 R 对象分组到列表中

    我已将一系列 SpatialPolygonsDataFrames 加载到我的工作区中 每个命名对象都有一个 adm0 adm1 or adm2 附有国家缩写 对于德国来说 这看起来像 DEU adm0 DEU adm1 and DEU ad
  • 用于检查 perl 模块是否已安装的 perl 脚本

    我希望能够对列表中的每个模块运行此测试 不知道如何 ger perl 循环遍历每个项目 use Module Load eval load Image Magick 1 or die you need Module to run this
  • LDAP Bind 似乎返回 true,密码为空

    我有这段代码根据 LDAP 目录对我的用户进行身份验证 当密码不正确时 它返回 false 但如果密码留空 它仍然会对用户进行身份验证 有什么想法可能会发生这种情况吗 if ldap bind ds user dn password sha