1.1 数据持久化
1.1.1【必须】SQL语句默认使用预编译并绑定变量
如使用Mybatis作为持久层框架,应通过#{}语法进行参数绑定,MyBatis 会创建 参数占位符,并通过占位符安全地设置参数。
Mybatis
1.1.2【必须】白名单过滤
对于表名、列名等无法进行预编译的场景,比如外部数据拼接到order by, group by语句中,需通过白名单的形式对数据进行校验,例如判断传入列名是否存在、升降序仅允许输入“ASC”和“DESC”、表明列名仅允许输入字符、数字、下划线等。参考示例: