我正在编写一个管理一些LDAP条目的PHP应用程序。我有一个页面显示来自给定分支的条目并过滤一些objectClasses(仅限某些授权用户等)。
我想知道将“原始”网址定义的过滤器传递给ldap_search()函数是否安全,否则可能导致任何类型的安全问题。
将要设置的过滤器类似于:
"(&(&(objectClass=myClass1)(objectClass=myClass2))". $_GET['filter'] .")"
当然,我会从不在SQL中写这样的东西,但使用LDAP函数?我没有看到这样做的任何风险,我错了吗?
注意:我不关心错误的过滤器语法等问题,因为我在生成URL时正在逃避其他地方。如果手动定义的过滤器有错误,可以向用户显示错误。
答案 0 :(得分:2)
与SQL查询不同,LDAP搜索查询不会进行更新,因此它们不太可能更改任何内容。此外,它们极不可能绕过权限,因为权限基于连接的DN而不是搜索查询。
我在LDAP上工作了大约3年,从不担心这一点,但当然我没有告诉用户他们正在与哪种类型的数据库进行交互。
IMO可以这样做。