With this bundle you can easy limit requests to your application
-
Add Zim32RequestLimitBundle to your deps file
[Zim32RequestLimitBundle] git=git://github.com/zim32/Symfony2-RequestLimitBundle.git target=/bundles/Zim32/RequestLimitBundle Make /bin/vendors install
-
Add Zim32RequestLimitBundle to your AppKernel
$bundles = array( ................. new Zim32\RequestLimitBundle\Zim32RequestLimitBundle(), );
-
Add Zim32 namespace into your /app/autoload.php
$loader->registerNamespaces(array( ................ 'Zim32' => DIR.'/../vendor/bundles', ));
-
Configure your application. For example
zim32_request_limit: rules: rule: path: /profile/ limit: 1 per: 60 ip: 192.168.1.2 some_foo_name: path: / limit: 10 per: 1
First rule will limit requests for 1 request per 60 seconds from ip 192.168.1.2 for URL starting with /profile/
- path (required) - path to apply rule
- limit (required) - number of requests. For immediate deny use '0' for limit
- per (required) - seconds
- ip (optional) - limit by remote ip
You can use several rules at the same time