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

red*_*dow 6 php ldap

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

我想知道将'原始'url定义的过滤器传递给ldap_search()函数是否安全,或者这可能带来任何类型的安全问题.

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

"(&(&(objectClass=myClass1)(objectClass=myClass2))". $_GET['filter'] .")"
Run Code Online (Sandbox Code Playgroud)

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

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

Vip*_*_Sb 2

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

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

IMO 这样做很好。