Changes for version 1.6.0 - 2026-08-25
- SECURITY FIXES
- Added 'trust_proxies' configuration parameter to PAGI::FastAPI::Middleware::BotProtection, defaults to 0.
- Added pow() reader method to PAGI::FastAPI::Middleware::BotProtection to expose the underlying PAGI::FastAPI::BotProtection::ProofOfWork instance for inspection and testing.
- Fixed IP spoofing security vulnerability by ignoring untrusted 'X-Forwarded-For' headers unless 'trust_proxies' is explicitly enabled.
- Properly extract the original client IP from comma-separated 'X-Forwarded-For' proxy chains when 'trust_proxies' is enabled.
- TESTING
- Added unit test: t/36-middleware_bot_protection_trust_proxies.t
Modules
Asynchronous, Type-Safe Micro-Framework with Dependency Injection and OpenAPI & Swagger UI
Base Interface for PAGI::FastAPI Bot Protection
Stateless Proof-of-Work Bot Mitigation Engine
Request and Response Lifecycle Context for PAGI::FastAPI
Request Cookie Parsing Helper for PAGI::FastAPI
Dependency Injection Wrapper for PAGI::FastAPI
Asynchronous Proof-of-Work Bot Protection Middleware for PAGI::FastAPI
Typed Exception-to-Handler Dispatch for PAGI::FastAPI
Async Rate Limiting Middleware for PAGI::FastAPI
Pluggable Async Message Queue Facade for PAGI::FastAPI
Abstract Base Class for Message Queue Storage Drivers
Default In-Memory Storage Driver for PAGI::FastAPI::Queue
Abstract Base Class for Rate Limiting Storage Drivers
Default In-Memory Storage Driver for Rate Limiting
Base HTTP Response Class for PAGI::FastAPI
File Download Response for PAGI::FastAPI
HTML Response Class for PAGI::FastAPI
HTTP Redirect Response for PAGI::FastAPI
Server-Sent Events (SSE) Streaming Response for PAGI::FastAPI
Response Shape Validation and Filtering for PAGI::FastAPI
Path Parameter Validation for PAGI::FastAPI
Examples
- eg/api_gateway.pl
- eg/app.pl
- eg/csrf_demo.pl
- eg/dbic_async_integration.pl
- eg/integration_demo.pl
- eg/lib/MyApp/Schema.pm
- eg/lib/MyApp/Schema/Result/User.pm
- eg/memory_queue_demo.pl
- eg/order_microservice.pl
- eg/rate_limit_demo.pl
- eg/sse_demo.pl
- eg/user_microservice.pl
- eg/webhook_demo.pl
- eg/websocket_app.pl