每当我使用过滤器
时(&(initials=abc)(title=manager)
)
此过滤器包含换行符。
执行此过滤器字符串会报告不一致的括号LDAP错误。
任何人都可以帮忙解决这个问题,如何处理换行? LDAP中是否支持包含换行符的过滤器?这是一个无效的过滤器还是可以处理,也许使用一些转义技术?
答案 0 :(得分:1)
您是否接受来自用户输入的过滤器并将其直接用作LDAP查询的输入?出于安全原因,无论目标数据库如何,我强烈建议不要以这种方式使用未经过授权的用户输入永远。正确的方法是接受来自用户的参数,然后使用这些参数动态构建过滤器(请注意,您仍需要考虑转义规则以防止可能的注入攻击。这就是为什么您应该使用工具来构建动态过滤器,例如,Spring LDAP中包含的过滤器支持。
也就是说,这个特殊的问题应该很容易解决:在使用它之前,只需要为要从过滤器中删除的字符做一个String.replace。