如何修复SQL Server中动态使用数据库名引发的SQL注入问题?
动态架构名引发Sonar SQL注入告警,已尝试方案均执行失败求解决
架构名取自配置文件,不同环境对应不同架构名。Sonar对以下SQL语句触发SQL注入告警:
select * from dbName.dbo.stu_name; -- dbname 为配置文件传入的变量
我已尝试以下两种方案,均能修复Sonar告警但查询无法正常执行:
- 使用
query.setParameter(?, dbname)动态传入架构名 - 使用
String.format("select * from '%s'.dbo.stu_name", tablename.replace("'", "''"))做字符串格式化转义
其他多种方案也都试过,均无效。恳请各位提供可行的解决办法!
内容的提问来源于stack exchange,提问作者Padmaja
相关产品推荐
相关产品推荐

