pub struct WhitelistValidator { /* private fields */ }Expand description
白名单校验器,限制 SQL 只能访问允许的表和列。
Implementations§
Source§impl WhitelistValidator
impl WhitelistValidator
Sourcepub fn allow_table(self, table: &str) -> Self
pub fn allow_table(self, table: &str) -> Self
添加允许的表名。
Sourcepub fn allow_tables(self, tables: &[&str]) -> Self
pub fn allow_tables(self, tables: &[&str]) -> Self
添加多个允许的表名。
Sourcepub fn allow_columns(self, columns: &[&str]) -> Self
pub fn allow_columns(self, columns: &[&str]) -> Self
设置允许的列名集合。设置后,SQL 中引用的列必须在集合内。
Sourcepub fn validate_tables(&self, sql: &str) -> ValidationResult
pub fn validate_tables(&self, sql: &str) -> ValidationResult
校验 SQL 中的表名是否在白名单内。
通过词法分析提取所有出现在 FROM / JOIN / INTO / UPDATE 后的标识符,
检查它们是否在 allowed_tables 集合内。
Sourcepub fn validate_columns(&self, sql: &str) -> ValidationResult
pub fn validate_columns(&self, sql: &str) -> ValidationResult
校验 SQL 中的列名是否在白名单内。
提取 SELECT 后、WHERE 子句中、SET 后的标识符作为列名进行校验。 注意:此校验为启发式,可能无法覆盖所有列引用场景。
Sourcepub fn validate(&self, sql: &str) -> ValidationResult
pub fn validate(&self, sql: &str) -> ValidationResult
同时校验表名和列名。
Trait Implementations§
Source§impl Clone for WhitelistValidator
impl Clone for WhitelistValidator
Source§fn clone(&self) -> WhitelistValidator
fn clone(&self) -> WhitelistValidator
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WhitelistValidator
impl Debug for WhitelistValidator
Source§impl Default for WhitelistValidator
impl Default for WhitelistValidator
Source§fn default() -> WhitelistValidator
fn default() -> WhitelistValidator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for WhitelistValidator
impl RefUnwindSafe for WhitelistValidator
impl Send for WhitelistValidator
impl Sync for WhitelistValidator
impl Unpin for WhitelistValidator
impl UnsafeUnpin for WhitelistValidator
impl UnwindSafe for WhitelistValidator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more