[英]Sonarqube warned sql injection on the input-driven column name in my hibernate sql
我的 java (Hibernate, MySql) 代碼采用輸入數據來決定我要更新哪一列,如下所示:
String hsql = "update People set " + inputColumnName + " = null";
Query query = myHibernateSession.createQuery(hsql);
query.executeUpdate();
但是,Sonarqube 說“更改此代碼以不直接從用戶控制的數據構造 SQL 查詢”。 無論如何我可以避免這個錯誤(修復這個或繞過 sonarqube 檢查而不關閉此規則)?
您需要將變量限制為列名並消除插入語句的可能性。 使用綁定變量會有所幫助,但請查看以下示例: https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.