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.22024年5月5日

#954 in 网页编程

每月 44 次下载

MIT/Apache 许可

87KB
1.5K SLoC

modsecurity

Crates.io MSRV Codecov Check Safety Test Contributions

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 许可证的定义,将按上述方式双许可,不附加任何额外条款或条件。

依赖

~14KB