Skip to main content

is_absolutely_forbidden

Function is_absolutely_forbidden 

Source
fn is_absolutely_forbidden(sql: &str) -> Option<&'static str>
Expand description

护栏 1 的字符串预检(token 序列匹配)。

把 SQL 按空白拆成 token(小写、去逗号/分号尾缀),再扫描是否出现 ABSOLUTELY_FORBIDDEN 里任一连续关键字序列。返回命中的序列描述供报错。

用 token 序列而非 contains() 是为了拦多空格/制表符/换行绕过—— drop database 在子串匹配下漏,在 token 序列下命中。