soenneker/soenneker.validators.ipaddresses.ssrf

GitHub: soenneker/soenneker.validators.ipaddresses.ssrf

一个 .NET 库,通过判断 IP 地址是否可公开路由来帮助防御 SSRF 攻击。

Stars: 0 | Forks: 0

[![](https://img.shields.io/nuget/v/soenneker.validators.ipaddresses.ssrf.svg?style=for-the-badge)](https://www.nuget.org/packages/soenneker.validators.ipaddresses.ssrf/) [![](https://img.shields.io/github/actions/workflow/status/soenneker/soenneker.validators.ipaddresses.ssrf/publish-package.yml?style=for-the-badge)](https://github.com/soenneker/soenneker.validators.ipaddresses.ssrf/actions/workflows/publish-package.yml) [![](https://img.shields.io/nuget/dt/soenneker.validators.ipaddresses.ssrf.svg?style=for-the-badge)](https://www.nuget.org/packages/soenneker.validators.ipaddresses.ssrf/) # ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/04/04005ae834313c22b271e0f5ffdfcc21d2ff232edf5d4f5fd2237918076c5c7f.png) 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, 多人体追踪, 安全组件, 防御工具