spider-rs/firewall

GitHub: spider-rs/firewall

一个 Rust 防火墙库,通过内置多层级恶意域名黑名单和 FST 高效匹配,帮助应用快速识别并拦截恶意、广告和跟踪网站。

Stars: 1 | Forks: 0

# spider_firewall 一个 Rust 库,通过对恶意和不受欢迎的网站进行分类和拦截,从而保护您的系统。 ## 安装 使用以下命令将 `spider_firewall` 添加到您的 Cargo 项目中: ``` cargo add spider_firewall ``` ## 大小层级 默认启用 `small` 层级。启用 `medium` 或 `large` 可获得更广泛的覆盖范围——每个层级都包含低于它的层级中的所有来源。 | 层级 | FST 大小 | 重点 | 功能标志 | |------|----------|-------|--------------| | **small**(默认) | ~13 MB | 广告、跟踪、恶意软件、网络钓鱼、诈骗 | `small` | | **medium** | ~26 MB | + 勒索软件、欺诈、滥用、威胁情报 | `medium` | | **large** | ~52 MB | + 重定向/域名仿冒、扩展广告/跟踪、完整 URLhaus | `large` | ``` # 默认 — small tier,所有类别: spider_firewall = "2.35" # Medium tier: spider_firewall = { version = "2.35", features = ["medium"] } # Large tier: spider_firewall = { version = "2.35", features = ["large"] } # Small tier,仅 bad + ads(无 tracking/gambling): spider_firewall = { version = "2.35", default-features = false, features = ["default-tls", "bad", "ads", "small"] } ``` ## 类别功能 类别可以独立切换(默认全部启用): | 功能 | 描述 | |---------|-------------| | `bad` | 恶意软件、网络钓鱼、诈骗、欺诈、勒索软件、滥用 | | `ads` | 广告域名 | | `tracking` | 跟踪和分析域名 | | `gambling` | 赌博域名 | ## 用法 ### 检查恶意网站 您可以使用 `is_bad_website_url` 函数来检查某个网站是否属于恶意网站列表。 ``` use spider_firewall::is_bad_website_url; fn main() { let u = url::Url::parse("https://badwebsite.com").expect("parse"); let blocked = is_bad_website_url(u.host_str().unwrap_or_default()); println!("Is blocked: {}", blocked); } ``` ### 添加自定义防火墙 您可以使用 `define_firewall!` 宏将您自己的网站添加到拦截列表中。这允许您在预定义或新的类别下对新的网站进行分类。 ``` use spider_firewall::is_bad_website_url; // Add "bad.com" to a custom category. define_firewall!("unknown", "bad.com"); fn main() { let u = url::Url::parse("https://bad.com").expect("parse"); let blocked = is_bad_website_url(u.host_str().unwrap_or_default()); println!("Is blocked: {}", blocked); } ``` ### 自定义广告列表示例 您可以指定在特定类别(例如“ads”)下要拦截的网站。 ``` use spider_firewall::is_ad_website_url; // Add "ads.com" to the ads category. define_firewall!("ads", "ads.com"); fn main() { let u = url::Url::parse("https://ads.com").expect("parse"); let blocked = is_ad_website_url(u.host_str().unwrap_or_default()); println!("Is blocked: {}", blocked); } ``` ## 拦截列表来源 ### Small(默认) | 来源 | 类别 | 许可证 | |--------|-----------|---------| | [ShadowWhisperer/BlockLists](https://github.com/ShadowWhisperer/BlockLists) | bad, ads, tracking, gambling | MIT | | [badmojr/1Hosts Lite](https://github.com/badmojr/1Hosts) | ads, tracking | MPL-2.0 | | [spider-rs/bad_websites](https://github.com/spider-rs/bad_websites) | bad | MIT | | [Steven Black Unified Hosts](https://github.com/StevenBlack/hosts) | bad | MIT | | [Block List Project — Malware](https://github.com/blocklistproject/Lists) | bad | MIT | | [Block List Project — Phishing](https://github.com/blocklistproject/Lists) | bad | MIT | | [Block List Project — Scam](https://github.com/blocklistproject/Lists) | bad | MIT | | [URLhaus Filter (domains)](https://malware-filter.gitlab.io/malware-filter/urlhaus-filter-domains.txt) | bad | CC0/MIT | ### Medium(附加) | 来源 | 类别 | 许可证 | |--------|-----------|---------| | [Block List Project — Ransomware](https://github.com/blocklistproject/Lists) | bad | MIT | | [Block List Project — Fraud](https://github.com/blocklistproject/Lists) | bad | MIT | | [Block List Project — Abuse](https://github.com/blocklistproject/Lists) | bad | MIT | | [Phishing.Database — Active Domains](https://github.com/mitchellkrogza/Phishing.Database) | bad | MIT | | [Stamparm/maltrail — Suspicious](https://github.com/stamparm/maltrail) | bad | MIT | ### Large(附加) | 来源 | 类别 | 许可证 | |--------|-----------|---------| | [Block List Project — Redirect](https://github.com/blocklistproject/Lists) | bad | MIT | | [Block List Project — Tracking](https://github.com/blocklistproject/Lists) | tracking | MIT | | [Block List Project — Ads](https://github.com/blocklistproject/Lists) | ads | MIT | | [Stamparm/maltrail — Malware](https://github.com/stamparm/maltrail) | bad | MIT | | [abuse.ch URLhaus Hostfile](https://urlhaus.abuse.ch/downloads/hostfile/) | bad | CC0 | ## 构建时间 初次构建可能需要更长的时间(约 5-10 分钟),因为这可能涉及编译依赖项并生成必要的数据文件。 ## 贡献 欢迎贡献和改进。请随时在 GitHub 仓库中提交 Issues 或 Pull Requests。 ## 许可证 本项目采用 MIT 许可证授权。
标签:Cargo包, DNS防护, FST, Object Callbacks, Rust, Rust库, SEO优化, URL过滤, 勒索软件, 反欺诈, 可视化界面, 域名分类, 威胁情报, 宏定义, 广告拦截, 开发库, 开发者工具, 恶意网站拦截, 恶意软件, 网络安全, 网络安全库, 网络流量审计, 网络爬虫安全, 网络访问控制, 网络过滤, 网络钓鱼, 追踪拦截, 通知系统, 防火墙, 隐私保护