`

LDAP查询运算符

    博客分类:
  • LDAP
阅读更多

使用过滤器框可以构建查询。下表列出了最常用的 LDAP 查询运算符。

&	逻辑与
|	逻辑或
!	逻辑非
=	等于
~=	约等于
>=	等于或大于
<=	小于或等于
					

例如,如果您要搜索名为 John 并且姓为 Smith 或 Jones 的所有用户,则过滤器类似于下面这种形式:

(&(objectClass=user)(givenName=John)(|(sn=Smith)(sn=Jones)))
					

符号 !(“逻辑非”运算符)可以应用于单个条件,如以下示例所示:

(&(objectClass=user)(sn=Jones)(!givenName=John)(!givenName=Jane)(!logonCount<=100))
					

上述过滤器可查找姓为 Jones,名既不是 John 也不是 Mary 并且登录次数不少于 101 次的用户。

查询还支持星号通配符。以下搜索将返回姓以字母 J 开头的所有用户:

(&(objectClass=user)(sn=j*))
					

LDP 实用工具搜索操作不区分大小写,您可以在开头和结尾使用星号(*字符串*)来查找值中间的子字符串。完成此类搜索所需的时间要长很多。如果可能,请在开头或结尾使用通配符,但不要同时使用。

您可以使用通配符自身来测试是否存在给定的属性。如果您要查找所有不具有 Exchange Server 邮箱的用户,您可以使用以下查询来进行查找,因为这些用户缺少 msExchHomeServerName 值:

(&(objectClass=user)(!msExchHomeServerName=*))
					

查询中的转义字符是反斜杠 (\)。它与 * ( ) 和 NUL 都是保留字符。要搜索作为属性值的一部分的保留字符,必须在这些保留字符前面放置转义字符以及下列与各个保留字符相对应的数字代码之一:

*     2a
(     28
)     29
\     5c
NUL   00
					

例如,如果您要搜索显示名称以右括号字符结尾的所有用户,可使用以下搜索:

(&(objectClass=user)(displayName=*\29))
					

如果您要查找主目录为 G:\Accounting 的用户,可使用以下搜索:

(&(objectClass=user)(home-directory=G:\5cACCOUNTING*))
					

在 LDAP 查询中,反斜杠始终表示转义字符,而永远不会是实际的反斜杠。

分享到:
评论

相关推荐

    测试LDAP注入.docx

    每个 LDAP 查询使用一个或多个搜索过滤器,它们决定了请求返回的目录项,搜索过滤器可以使用各种逻辑运算符来表示复杂的搜索条件,常用的搜索过滤器有简单匹配条件、析取查询、合取查询等。 但是,如果用户提交的...

    LDAP基础知识教程

    - **概念**: LDAP查询过滤允许用户根据特定条件检索目录中的信息。 - **作用**: 使用户能够高效精确地查找所需的数据。 **7.2 LDAP查询过滤定义** - **语法**: 定义了过滤器的语法结构。 - **逻辑运算**: 支持AND...

    LDAP rfc文档 中英文对照

    9. **性能优化**:通过索引、缓存和引用等技术,LDAP能够高效处理大量查询,提高服务性能。 10. **应用实例**:LDAP常用于企业身份验证、邮件地址簿、用户权限管理、设备配置等多种场景。例如,OpenLDAP和Active ...

    LDAP使用手册

    4. **搜索操作**: LDAP支持多种搜索操作,如基本查询、过滤器、范围限制等,以满足不同需求的查找。 **二、LDAP编程技术** 1. **API接口**: 开发人员可以使用各种编程语言(如Java、Python、C#)的LDAP API来与...

    SANS AUD 507 Active Directory Cheat Sheet_1.pdf

    文档中提到了LDAP查询的基础,包括使用逻辑运算符(例如AND和OR)构建查询,以及LDAP查询的前缀表示法。 6. 时间戳转换 文档还提供了一个Excel公式来将Windows LDAP时间戳转换成一个可读的日期格式,这在处理Active...

    SANS AUD507 Active Directory Cheat Sheet.pdf

    在AD中,特定的LDAP查询规则可以通过Bitwise运算符来指定。例如,文档中提到了`*.*.***.***.*.*.***`代表逻辑AND,`*.*.***.***.*.*.***`代表逻辑OR。这些LDAP规则ID(OIDs)用于构建复杂的查询过滤器,来控制查询...

    XACML策略语言规范

    XACML 语言还支持多种数据类型、函数和逻辑运算符,能够满足复杂的访问控制需求。 XACML 语言的核心组件包括 Policy、PolicySet、Rule、Condition 和 Target 等。Policy 是最基本的策略单元,定义了访问控制规则。...

    Professional.PHP.Programming(php高级编程)

    - **查询与操作**:通过`ldap_search()`、`ldap_bind()`等函数进行用户验证及信息查询。 **3.4 GD库** - **图像处理**:GD库提供了丰富的图像处理功能,包括创建新图像、绘制图形、添加文本等。 - **输出图像**:...

    JAVA安全编码手册.pdf

    此外,文档还指出了其他类型的注入攻击,如XPATH注入、LDAP注入和OS命令注入等。这些攻击的共同点在于,它们都利用了应用程序在处理输入数据时的不当做法,从而攻击者有机会在数据中嵌入恶意指令。 Java编码中常见...

    软件评测题库.docx

    程序语言基础是软件测试的核心技术,包括编程语言的基本概念、数据类型、变量、运算符、控制结构、函数等。软件测试人员需要具备良好的编程语言基础知识,以便更好地理解软件产品的实现机理。 3. 操作系统 操作...

    Java2核心技术.part5

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级...

    Java2核心技术.part3

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级...

    Java2核心技术.part1

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级Swing 第7章 ...

    Java2核心技术.part6

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级...

    Java2核心技术.part4

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级...

    Java2核心技术.part2

    4.11 LDAP概述 第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级...

    j2ee攻略(经典)

    它允许开发者以统一的方式访问不同的命名和目录服务,如DNS、LDAP等。在EJB中,JNDI常用于查找和绑定EJB组件或其他资源。 **1.4 下载与安装JDK** JDK(Java Development Kit)是开发Java应用程序所必需的软件包,...

    Python库 | yara_python-3.9.0-cp27-cp27m-win32.whl

    这些规则可以包含字符串匹配、条件语句和逻辑运算符,使得对复杂模式的查找变得简单。 在`yara-python`库中,你可以通过编写YARA规则来定义你想要查找的模式,这些规则可以是静态的(如特定文件头或PE结构),也...

Global site tag (gtag.js) - Google Analytics