我正在开发第一个查询 LDAP 的桌面应用程序。我在 unix 下使用 C 语言工作并使用 opends,而且我是 LDAP 的新手。经过一段时间的了解后,我注意到用户可以通过注入(inject)恶意代码来更改 LDAP 查询。
我想知道哪些清理技术是已知的,不仅适用于 C/unix 开发,而且适用于更一般的术语,即 Web 开发等。
我认为转义等号和分号就足够了,但不确定。
这里有一小段代码,以便我可以更清楚地说明问题:
String ldapSearchQuery = "(cn=" + $userName + ")";
System.out.println(ldapSearchQuery);
显然,我确实需要清理 $userName,如 OWASP ARTICLE 中所述。
最佳答案
OWASP 是一个很好的安全指南,我经常使用它,并且有示例代码(Java 语言,但你应该能够翻译): http://www.owasp.org/index.php/Preventing_LDAP_Injection_in_Java
此外,这里还有一个 Active Directory 特定引用: http://www.rlmueller.net/CharactersEscaped.htm
关于security - 防止 LDAP 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028770/