0
私は、Hibernateを使用するJava Webサービスを持っています。そのメソッドの1つは、SQL Serverで新しいテーブルを作成するように設計されており、そのテーブルはオブジェクトにマップされていません。現在のデザインでは、データベース名、スキーマ名、テーブル名、およびフィールド定義を引数として受け取り、それらからクエリ文字列を作成して実行します。それは正常に動作しますが、SQLインジェクションの欠陥です。SQLインジェクションの欠陥を導入せずにHibernate Java Webサービスで新しいテーブルを作成するにはどうしたらいいですか?
パラメータ化クエリを使用して、インスタンスのために、この欠陥を導入するか、私は知らない休止状態にあるいくつかの機能を使用せずにテーブルを作成する方法はありますか?
欠陥がcreateSQLQueryへの呼び出しで行わ:
String sSql = "CREATE TABLE [" + sDatabaseName + "].[" + sSchema + "].[" + sTableName + "] (" + sSqlFields + ")";
Session session = getSession();
Query q = session.createSQLQuery(sSql);
q.executeUpdate();
おかげで、マイケル:あなたは次のようにクエリをparameteriseすることができます。私はそれがまさに私が探していたものだと思う。 – Dragon
問題ありません。あなたが助けてくれれば、回答をアップアップしたり受け入れることができます。 – Michael
私はupvoteにまだスコアを持っていませんが、私は答えを受け入れました。再度、感謝します。 – Dragon