soenneker/soenneker.validators.ipaddresses.ssrf
GitHub: soenneker/soenneker.validators.ipaddresses.ssrf
一个 .NET 库,通过判断 IP 地址是否可公开路由来帮助防御 SSRF 攻击。
Stars: 0 | Forks: 0
[](https://www.nuget.org/packages/soenneker.validators.ipaddresses.ssrf/)
[](https://github.com/soenneker/soenneker.validators.ipaddresses.ssrf/actions/workflows/publish-package.yml)
[](https://www.nuget.org/packages/soenneker.validators.ipaddresses.ssrf/)
#  Soenneker.Validators.IpAddresses.Ssrf
### 用于 SSRF 防护的 IP 地址验证
判断 IPv4 或 IPv6 地址是否可公开路由。对于私有、环回、本地链路、运营商级 NAT、文档、基准测试、多播、保留、IPv4 映射的 IPv6 以及其他特殊用途的目标,均采取保守处理方式。
## 安装
```
dotnet add package Soenneker.Validators.IpAddresses.Ssrf
```
## 用法
```
services.AddSsrfIpAddressValidatorAsSingleton();
ISsrfIpAddressValidator validator =
serviceProvider.GetRequiredService();
bool isPublic = validator.Validate("8.8.8.8"); // true
bool isPrivate = validator.Validate("192.168.1.10"); // false
bool isLoopback = validator.Validate(IPAddress.Loopback); // false
```
`Validate(string)` 仅接受明确的 IP 地址字面量,且不执行托管内存分配。它不会解析主机名。传统的缩写、八进制和十六进制 IPv4 格式将被拒绝。
为了发送具备 SSRF 安全性的 HTTP 请求,请在建立连接时解析每个主机名并验证每个返回的地址。同时也要重新验证重定向,以免 DNS 重绑定绕过先前的检查。
标签:IP验证, SSRF防护, TLS, 多人体追踪, 安全组件, 防御工具