修复: FR-S6 validate_column_name 未登记表放行→保守拒绝

None 分支 Ok(放行)→Err(拒绝),与 is_allowed_column 的 None=>false 对齐;防未来未登记表走通用查询路径列名直进字符串拼接致 SQL 注入(当前 12 表全登记无影响,防御性)
来源 fullstack-review §2(待复核→确认);df-storage test pass / cargo 0 err
This commit is contained in:
2026-06-14 17:19:45 +08:00
parent b47d45ea4e
commit b195a38d64

View File

@@ -335,7 +335,8 @@ fn validate_column_name(field: &str, table: &str) -> Result<()> {
match allowed_columns_for(table) {
Some(cols) if cols.contains(&field) => Ok(()),
Some(_) => Err(Error::Storage(format!("{} 不允许的字段名: {}", table, field))),
None => Ok(()),
// 未登记表保守拒绝(FR-S6: 原放行 Ok若未来未登记表走通用查询路径列名直进字符串拼接即 SQL 注入;与 is_allowed_column 的 None=>false 对齐)
None => Err(Error::Storage(format!("{} 未登记列白名单,拒绝防注入", table))),
}
}