ユーザーがLDAPフィルタに入力した文字列を使用する必要があるLDAP呼び出しを行っています。文字列から英数字以外の文字をすべて削除してデータを消毒しました。トリック/回避策HP Fortify LDAP注入の検索
public static String alphanumericOnly(String input) {
return input == null ? "" : input.replaceAll("\\W|_", "");
}
しかし、HP FortifyはフラグIは、LDAPインジェクション攻撃を実行することができることなど何もLDAPのメタ文字が存在しないことを確認するために私のデューデリジェンスを行っているにもかかわらず、LDAPインジェクションの脆弱性などの交換。
HP Fortifyをトリックして、この対話にフラグを立てない方法を探しています。
文字列の入力が整数の場合、int(この場合はBigInteger)として解析して文字列に使用でき、HP Fortifyで無視されることがHP Fortifyの他の用途で気付きました鍛造ログをチェックするとき:
BigInteger id = new BigInteger(ValueChecker.numericOnly(request.getID()));
logger.info(id + " - Request Received.");
を私はすでにデータを検証してきたので、LDAPインジェクションの問題を無視するにHP Fortifyはをだますために、同様の方法があるかもしれないと私には思えます。私が試した
簡単な回避策は動作しませんでした:
が、その後、バイト配列に各文字を入れて文字列
に戻し、その後、char配列に文字列を変換するバック変換します文字列
へ3210
私はFortify調査結果を隠したり、隠したりするつもりはありません。私は彼らがまったくフラグが立てられないように、要塞/回避策を強化したい。
アイデア?
これはFortifyのバグとよく似ていますが、結局のところまだ脆弱です。なぜ脆弱性を修正するだけではないのですか? – AviD