I'm developing a site that will allow unregistered users to submit data to the server. I would like to rate limit this submission.
My first instinct is simply to save the user's ip in my DB with a ttl index (time to live). While the ip exists in the db the user is blocked from submitting. But my concern is that you could have two user sharing an IP, eg: two people in same home or office.
Is there a pattern or standard practice on how to profile user's for the purpose of rate limiting?