I am considering OpenID as a login method for my PHP application, but there is one thing that prevents me from continuing: how can I protect an OpenID consumer against abuse?
An example of abusing OpenID by using a consumer as proxy
Abuse includes flooding other servers with requests, using my application as a proxy, passing a large download as URL or unnecessarily slowing down the server by doing a lot requests.
I guess I should implement rate-limiting on doing requests, but how am I supposed to do that? Possible attackers could use other proxies or TOR for bypassing IP checks. Limiting the providers which are allowed would be against the principles of OpenID right?
I do not expect my users to be evil, but I'd like to know which things I need to take into account before adding another possible attack vector.
Should it matter, I'm about to use lightopenid as back-end for the PHP application.