Closed btown021 closed 2 weeks ago
+1,尤其是postgresql默认会把sql中的列名变小写,如果表中的列名是大写就会很麻烦
+1,尤其是postgresql默认把sql中的列名变小写,如果表中的列名是大写就会很麻烦
我现在是通过反射的方式解决的,OrderItem 只有创建的时候会进行替换,可以反射修改里面内容
+1 刚升级了一下版本,发现了这个问题,这样确实防止了SQL注入的问题,但是我认为这个配置应该是灵活可控的
+1刚升级了一下版本,发现了这个问题,这样确实防止了SQL注入的问题,但是我认为这个配置应该是灵活可控的
是这样的,灵活了过后可以利用Sql的函数实现更多的东西,同时调用者也会保证Sql的安全性问题。 现在还是只能通过反射去解决
你们可以重写(如果被 SQL 注入自行负责),如下:
page.setOrders(Arrays.asList(new OrderItem() {
@Override
public boolean isAsc() {
return true;
}
@Override
public String getColumn() {
return "\"字段\"";
}
}));
确认
功能改进
如图 OrderItem在创建时 替换了Pattern.compile("'|\"|\<|\>|&|\|\+|=|#|-|;|\s|\t|\r|\n") 的内容,导致部分逻辑不能实现,我在使用反射修改 OrderItem 对象的 column 属性后代码正常运行 , 目前orderItem 除反射外无法正常跳过替换 能否加入安全模式 主动跳过该替换 如加入方法 public OrderItem setColumnSafe(String column) { // 正常的创建逻辑 但是不替换 ‘’ “ ” 等有Sql注入问题的字符 }
参考资料
No response