これは疑わしい質問かもしれませんが、ドキュメントでは、条件付きクエリがパラメータ化されているか、またはフードの下で注入保護されていることを明示的に示していません。Java/Hibernate Criteria Query APIはインジェクションに対して保護されていますか?
言い換えれば、以下のような述語は注射攻撃に直接脆弱ですか?もしそうなら、私はそれをどのように修正するのですか?ドキュメントを見てみると、パラメータ化やそれに類するオプションはありません。
criteriaBuilder.like(
root.get("prop"),
"%"+userInput+"%"
)
パラメータ化されているかどうかは気になりますか?気になるのは、注射脆弱性があるかどうかです。 – immibis
もちろん、十分です。私はちょうどそのように言いました。なぜなら、パラメータ化は注入に対する適切な防御を提供する一貫した方法の点で思い浮かぶ最初のことであり、APIの構造と一致します。しかし、あなたが正しいです、彼らの実装の詳細は結果に直接関連していないし、直接質問するのは理にかなっていません。私は私の質問に言い換えるつもりです。 –
特に指定しない限り、*良い品質の*ライブラリはSQLインジェクション攻撃を許可していないと思います。ただし、これは*良質の*ライブラリにのみ適用されます。休止状態は私のように見えるが、私はそれを一度も使用していない。 – immibis