将“原始”搜索过滤器传递给ldap_search()函数是否安全?

时间:2010-09-27 14:16:22

标签: php ldap

我正在编写一个管理一些LDAP条目的PHP应用程序。我有一个页面显示来自给定分支的条目并过滤一些objectClasses(仅限某些授权用户等)。

我想知道将“原始”网址定义的过滤器传递给ldap_search()函数是否安全,否则可能导致任何类型的安全问题。

将要设置的过滤器类似于:

"(&(&(objectClass=myClass1)(objectClass=myClass2))". $_GET['filter'] .")"

当然,我会从不在SQL中写这样的东西,但使用LDAP函数?我没有看到这样做的任何风险,我错了吗?

注意:我不关心错误的过滤器语法等问题,因为我在生成URL时正在逃避其他地方。如果手动定义的过滤器有错误,可以向用户显示错误。

1 个答案:

答案 0 :(得分:2)

与SQL查询不同,LDAP搜索查询不会进行更新,因此它们不太可能更改任何内容。此外,它们极不可能绕过权限,因为权限基于连接的DN而不是搜索查询。

我在LDAP上工作了大约3年,从不担心这一点,但当然我没有告诉用户他们正在与哪种类型的数据库进行交互。

IMO可以这样做。