
为啥不用参数?老项目改起来麻烦。
查询语句原本拼接前后都有单引号的前提下。全局过滤单引号,可行不?
1 opengps 2020 年 9 月 10 日 直接替换不大行,因为损害了用户输入字符(如果用户输入单引号,你给他清空吗?) 你可以在入参部分,进行全局替换单引号为两个单引号(第一个标识注释,第二个表示用户字符)。其实这么做挺麻烦,因为程序涉及到输入的地方,每一步都得替换 |
2 eviladan0s 2020 年 9 月 10 日 替换或者过滤清除其实都有风险,安全上太多类似案例了,如果你要搞可以把过滤函数发出来大家帮你审审 |
3 greatbody 2020 年 9 月 10 日 老项目考虑下渐进式的重构。 UT 覆盖上,然后重构。 |
6 zarte OP @eviladan0s ``` foreach (string sqlKey in patten2) { if (_sWord.IndexOf(sqlKey) >= 0) { //只要存在一个可能出现 Sql 注入的参数,则直接退出 result = true; break; } } ``` |