Throttle just about anything with ease

Edit Package perl-Schedule-AdaptiveThrottler
http://search.cpan.org/dist/Schedule-AdaptiveThrottler

This module was originally designed to throttle access to web forms, and help
prevent brute force attacks and DoS conditions. What it does is very simple:
store lists of timestamps, one for each set of parameter defined in the
authorize() call, check the number of timestamps in the previously generated
list isn't over the threshold set in the call, cleanup the list of expired
timestamps from the list, and put the list back in memcached.

It is really a simple bucket algorithm, helped by some of memcached's features
(specifically the automatic cleanup of expired records, particularly useful
when a ban has been specified).

The interesting thing about it is it can count and throttle anything: if you
need to restrict access to a DB layer to a certain number of calls per minute
per process, for instance, you can do it the exact same way as in the examples
above. Simply use the PID as the 'value' key, and you're set. The possible
applications are endless.

It was written to be fast, efficient, and simpler than other throttling modules
found on CPAN. All what we found was either too complicated, or not fast
enough. Using memcached, a list and a grep on timestamps, where the criteria
(an IP address for instance) are part of the object key, proved satisfactory in
all respects. In particular, we didn't want something using locks, which
introduces a DoS risk all by itself.

Refresh
Refresh
Source Files
Filename Size Changed
Schedule-AdaptiveThrottler-0.06.tar.gz 0000011147 10.9 KB
perl-Schedule-AdaptiveThrottler.changes 0000000459 459 Bytes
perl-Schedule-AdaptiveThrottler.spec 0000001667 1.63 KB
Latest Revision
Stephan Kulow's avatar Stephan Kulow (coolo) accepted request 296264 from Stephan Kulow's avatar Stephan Kulow (coolo) (revision 2)
automatic update
Comments 0
openSUSE Build Service is sponsored by