Maxim Mironjuk
-
Februar 07, 2025
Der Symfony RateLimiter schützt Endpunkte zuverlässig vor Missbrauch, aber nur, wenn der gewählte Storage-Backend zur tatsächlichen Infrastruktur passt. In-Memory-Storage ist für Tests gedacht und zählt Anfragen nur innerhalb eines einzelnen PHP-Prozesses, was hinter einem Load Balancer mit mehreren Server-Instanzen faktisch bedeutet, dass ein Angreifer das Limit einfach mit der Anzahl der Instanzen multiplizieren kann. Dieser Artikel vergleicht In-Memory-Storage, den generischen Cache-Adapter und Redis als geteilten Zustand, zeigt die konkrete Konfiguration der RateLimiterFactory und erklärt den praktischen Unterschied zwischen Sliding-Window- und Token-Bucket-Policy.