Aymeric, Technically speaking you can't prevent a DoS attack; only minimize its impact. In particular, the resources of serving the request and getting to the filter are still used. In some cases, this may be enough to get the server to 100% capacity.
The best you can do is cache the IP addresses that make requests in the filter and not process the request if there are X number from a certain IP within a predetermined interval. Note that proxy servers make it look like many users are coming from the same IP. So it is legitimate to have concurrent requests.