Security
- WebSocket Event Security Hardening - Three-layer defense for WebSocket event dispatch: (#104)
- Event name guard — regex pattern filter (
^[a-z][a-z0-9_]*$) blocks private methods, dunders, and malformed names beforegetattr() @event_handlerdecorator allowlist — only methods decorated with@event_handler(or listed in_allowed_events) are callable via WebSocket. Configurable viaevent_securitysetting ("strict"default,"warn","open")- Server-side rate limiting — per-connection token bucket algorithm with configurable rate/burst. Per-handler
@rate_limitdecorator for expensive operations. Automatic disconnect after repeated violations (close code 4429) - Per-IP connection limit — process-level
IPConnectionTrackerenforces a maximum number of concurrent WebSocket connections per IP (default: 10) and a reconnection cooldown after rate-limit disconnects (default: 5 seconds). Configurable viamax_connections_per_ipandreconnect_cooldowninrate_limitsettings. SupportsX-Forwarded-Forheader for proxied deployments. (#108, #121) - Message size limit — 64KB default (
max_message_sizesetting)
- Event name guard — regex pattern filter (
Documentation
Added
is_event_handler(func)— check if a function is decorated with@event_handler@rate_limit(rate, burst)— per-handler server-side rate limiting decorator_allowed_eventsclass attribute — escape hatch for bulk allowlisting without decorating each methodLIVEVIEW_CONFIGsettings:event_security,rate_limit(includingmax_connections_per_ip,reconnect_cooldown),max_message_size