要过fortify之类的静态代码安全扫描。
public static final String[] ALLOWED_DATABASE = {};
public static final String[] ALLOWED_TABLE = {};
String query = "select id from " + ALLOWED_DATABASE[dbIndex] + "." + ALLOWED_TABLE[tableIndex] + " where 1=1";
PreparedStatement ps = connection.prepareStatement(query);在表名在可控的一个范围内,这样是可以的。完全任意的动态表名还是过不了代码扫描
文章讨论了在使用Fortify进行静态代码安全扫描时,如何处理允许的数据库和表名。示例代码展示了在表名可控范围内构造查询是安全的,但完全动态的表名可能无法通过扫描。使用PreparedStatement预编译SQL语句可以提高安全性。

3685

被折叠的 条评论
为什么被折叠?



