Open jettisonJava opened 7 months ago
感谢建议和提交 PR~
如果只是这种简单的 = > < >= <= 大小比较,可以直接改用: "a{}":"=2" // 区间范围 或 "a{}":[2] // a IN(2) // 选项范围
"@combine":"a:a=111" 这种写法虽然能在兼容旧语法的情况下扩展同名 key 的条件,但不好防 SQL 注入,需要完整的复杂解析过程,才知道哪些字符是 key,哪些字符是 value,哪些字符是 比较条件,大中小括号 等,需要慎重考虑必要性和安全性等
还可以用 SQL 函数或类似 SQL 函数(有括号但没有名称)的复杂条件表达式: "sex2{}": "(sex)=1"
测试了"sex2{}": "(sex)=1"的表达式,不适用于没有主键数据的更新。 另外pr的代码也测到确实存在sql注入问题。需要后续考虑一下怎么调整.
强制传主键和以上问题无关,可以这样设置来放宽: DemoSQLConfig.IS_MUST_HAVE_ID_CONDITION = false
APIJSON Version/APIJSON 版本号
6.4.0
Database Type & Version/数据库类型及版本号
达梦8
Environment/环境信息
APIAuto Screenshots/APIAuto 请求与结果完整截屏
已提PR
Current Behavior/问题描述
Expected Behavior/期望结果
Any additional comments?/其它补充说明?
No response