Download the PHP package nowo-tech/outbound-url-guard-bundle without Composer
On this page you can find all versions of the php package nowo-tech/outbound-url-guard-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nowo-tech/outbound-url-guard-bundle
More information about nowo-tech/outbound-url-guard-bundle
Files in nowo-tech/outbound-url-guard-bundle
Package outbound-url-guard-bundle
Short Description Symfony bundle that blocks SSRF on outbound http(s) URLs: private networks, cloud metadata, and optional DNS pinning.
License MIT
Homepage https://github.com/nowo-tech/OutboundUrlGuard
Informations about the package outbound-url-guard-bundle
Outbound URL Guard
⭐ Found this useful? Install it from Packagist and star OutboundUrlGuard.
Symfony bundle that checks an outbound http or https URL before your app opens the connection. It blocks loopback, private, and reserved addresses, plus cloud metadata, and can pin a hostname to the first public DNS answer.
Compatible with Symfony 7.4, 8.0, and 8.1. PHP 8.2+ (Symfony 8.x requires PHP 8.4+).
This bundle is FrankenPHP worker mode friendly, including when reset_kernel is false (no per-request state; DNS bounded by dns_timeout). See FrankenPHP worker audit.
Features
- Rejects schemes other than
httpandhttps. - Blocks loopback, RFC1918, link-local, unique-local, and other addresses PHP marks private or reserved.
- Blocks cloud metadata even when
allow_privateis true, including decimal, octal, hex, shorthand (127.1-style), and IPv4-mapped forms. Hostnames resolving to metadata are blocked whenresolve_dnsis true. - Optional runtime private-URL switch:
allow_private_resolverpoints at yourAllowPrivateResolverInterfaceservice, read on everyRuntimeOutboundUrlGuardcall. - Optional DNS resolution with an HttpClient
resolvepin (IPv4 preferred) and a configurable socket timeout. - Does not open the HTTP connection. Callers still set TLS, timeouts, and
max_redirects: 0.
Installation
Flex registers the bundle from type: symfony-bundle. See Installation.
Requirements
- PHP
>=8.2 <8.6 - Symfony components
^7.4 || ^8.0(symfony/config,symfony/dependency-injection,symfony/http-kernel,symfony/process,symfony/yaml)
Configuration
Full key list: Configuration.
Usage
Operator-controlled private URLs: implement AllowPrivateResolverInterface, set allow_private_resolver, inject RuntimeOutboundUrlGuard (same methods).
Docker service names: $guard->assertSafe('http://mercure/.well-known/mercure', resolveDns: false);
Documentation
- Installation
- Configuration
- Usage
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
Additional documentation
- PSR evaluation
- GitHub CI
- FrankenPHP worker audit
Tests and coverage
- PHPUnit unit and integration tests (
composer test,make test) - PHP: 100%
- TS/JS: N/A
- Python: N/A
make test-coverage prints the PHP Lines percentage and fails when Clover statement coverage is below 99%. make test-coverage-100 requires 100%.
License
MIT. See LICENSE.
Contributing
See Code of Conduct.
Version policy
The 1.x line is supported. Report vulnerabilities privately as described in Security.
Author
All versions of outbound-url-guard-bundle with dependencies
symfony/config Version ^7.4 || ^8.0
symfony/dependency-injection Version ^7.4 || ^8.0
symfony/http-kernel Version ^7.4 || ^8.0
symfony/process Version ^7.4 || ^8.0
symfony/yaml Version ^7.4 || ^8.0