SQLインジェクションに対して両方の機能がサニタイズされていますか?たとえば、次の点を考慮します。JDBI - JDBIの@defineと@bindの違いは何ですか?
@SqlUpdate("INSERT INTO <tableName> (<columns>) VALUES (<values>)")
public abstract void addRowToDataset(@Define("tableName") String tableName, @Define("columns") String columns, @BindIn("values") Collection<Object> values);
私の現在の理解は、クエリにあるよう@define
は文字通りの文字列を挿入しますが、消毒は@bind
ないということです。したがって、columns
とtableName parameters
を制御し、values
パラメータだけがユーザー入力である場合は、問題ありません。