6 个版本
0.1.4 | 2024年5月17日 |
---|---|
0.1.3 | 2024年5月14日 |
0.1.2 | 2024年5月13日 |
0.1.1 | 2024年5月13日 |
0.1.1-alpha.2 | 2024年5月5日 |
#954 in 网页编程
每月 44 次下载
87KB
1.5K SLoC
modsecurity
ModSecurity 库的 Rust 接口。
如果你在寻找对 libmodsecurity 的低级 FFI 绑定,请查看 modsecurity-sys。
示例
使用路径中的 admin
阻止请求
use modsecurity::{ModSecurity, Rules};
let ms = ModSecurity::default();
let mut rules = Rules::new();
rules.add_plain(r#"
SecRuleEngine On
SecRule REQUEST_URI "@rx admin" "id:1,phase:1,deny,status:401"
"#).expect("Failed to add rules");
let mut transaction = ms
.transaction_builder()
.with_rules(&rules)
.build()
.expect("Error building transaction");
transaction.process_uri("http://example.com/admin", "GET", "1.1").expect("Error processing URI");
transaction.process_request_headers().expect("Error processing request headers");
let intervention = transaction.intervention().expect("Expected intervention");
assert_eq!(intervention.status(), 401);
更多示例可以在 示例 目录中找到。
文档
有关 ModSecurity 语言的更多信息,请参阅 ModSecurity 参考手册。
此 crate 的文档可以在 docs.rs 上找到。
需求
此 crate 需要安装 libmodsecurity
>= 3.0.6 到你的系统上。
许可
许可协议为以下之一
- Apache 许可协议,版本 2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
供您选择。
贡献
除非你明确说明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证的定义,将按上述方式双许可,不附加任何额外条款或条件。
依赖
~14KB