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过滤, 勒索软件, 反欺诈, 可视化界面, 域名分类, 威胁情报, 宏定义, 广告拦截, 开发库, 开发者工具, 恶意网站拦截, 恶意软件, 网络安全, 网络安全库, 网络流量审计, 网络爬虫安全, 网络访问控制, 网络过滤, 网络钓鱼, 追踪拦截, 通知系统, 防火墙, 隐私保护