Imagine a campaign where a visitor with a unique win-code from a product package can win immediately by entering just the code. The client wants email etc. after validating the winning code. This is uncommon, but much more sympathetic as opposed to demanding email and personal data before checking if one has won i.m.h.o.
So, the flow for the visitor would be:
[ ENTER CODE ]
!win -> [ TOO BAD ]
win -> [ CONGRATULATIONS ] -> [ ENTER PERSONAL DATA ]
This scenario would mean a brute force bot could try codes until the response would differ, implying a winning code. Would you use/build a (re)captcha?
How would you protect from flooding? An attacker could easily spoof IP / UserAgent for every request.
Is it even possible to protect such a mechanism in this flow?