私は、LDAP をクエリする初めてのデスクトップ アプリに取り組んでいます。私は Unix で C 言語を使い、opends を使用していますが、LDAP は初めてです。しばらく作業した後、ユーザーが悪意のあるコードを挿入することで LDAP クエリを変更できることに気付きました。C
/unix 開発だけでなく、より一般的な用語、つまり Web 開発などで、どのようなサニタイズ手法が知られているかを知りたいです。
等号とセミコロンをエスケープするだけで十分だと思いましたが、確信はありません。
質問をより明確にするために、ここに小さなコードを記載します。
String ldapSearchQuery = "(cn=" + $userName + ")";
System.out.println(ldapSearchQuery);
明らかに$userNameをサニタイズする必要がある。OWASP 記事
ベストアンサー1
OWASP は私がよく使用する優れたセキュリティ ガイドであり、サンプル コードも用意されています (Java ですが、翻訳できるはずです)。http://www.owasp.org/index.php/Preventing_LDAP_Injection_in_Java
また、Active Directory 固有のリファレンスは次のとおりです。http://www.rlmueller.net/CharactersEscaped.htm