将数据与查询结构分开
直接把值插入 SQL 字符串时,引号和特殊字符可能改变数据库对语句的解释。恶意或意外的值可能修改条件,甚至追加非预期 SQL。
参数化语句会固定查询结构,并通过单独通道传递数据值。请使用数据库工具文档中规定的占位符语法,并在对应参数字段中提供值。
标识符和业务规则也要验证
参数通常代表数据值,而不是表名、列名或排序方向。如果查询需要选择标识符,请将输入映射到固定允许列表,而不是插入任意文本。
绑定参数不能替代输入验证:写入前仍要检查格式、范围和授权。审查查询结构并测试边界输入,确保操作只影响预期记录。