0
我有一個使用Hibernate的Java Web服務。它的一種方法是用來在SQL Server中創建一個新表,並且該表未映射到一個對象。當前的設計接受數據庫名稱,模式名稱,表名稱和字段定義作爲參數,並執行從它們創建一個查詢字符串,然後執行它。它工作正常,但它是一個SQL注入缺陷。如何在不引入SQL注入漏洞的情況下在Hibernate Java Web服務中創建新表?
有沒有辦法創建一個表,而不會引入此缺陷,例如使用參數化查詢,或者使用Hibernate中的某些功能我不知道?
該漏洞發生在調用createSQLQuery:
String sSql = "CREATE TABLE [" + sDatabaseName + "].[" + sSchema + "].[" + sTableName + "] (" + sSqlFields + ")";
Session session = getSession();
Query q = session.createSQLQuery(sSql);
q.executeUpdate();
謝謝,邁克爾。我想這正是我所期待的。 – Dragon
沒問題。僅供參考,如果他們幫助你,你可以升職或接受答案。 – Michael
我還沒有得分的積分,但我確實接受了答案。再次感謝。 – Dragon