想象一下一个广告系列,其中带有来自产品包装的唯一赢代码的访问者可以通过仅输入代码立即获胜。客户在确认获奖代码后需要电子邮件等。这并不常见,但是更同情,而不是在检查某人是否赢得i.m.h.o之前要求电子邮件和个人数据。
因此,访问者的流量为:
[ ENTER CODE ]
!win -> [ TOO BAD ]
win -> [ CONGRATULATIONS ] -> [ ENTER PERSONAL DATA ]
这种情况意味着蛮力机器人可以尝试编码,直到响应有所不同,这意味着获胜的编码。您会使用/建立一个(重新)验证码吗?
您将如何防止洪水泛滥?攻击者很容易为每个请求欺骗IP / UserAgent。
在这种流程中甚至有可能保护这种机制吗?
答案 0 :(得分:1)
一般问题,一般答案...
最好使代码足够长,以至于变得不可行。
考虑一下威胁模型:为什么有人会去做呢?支出很高吗?
攻击者没有用IP欺骗的方法,因为他们永远不会看到响应,而且他们也无法通过TLS和HTTP来欺骗IP(他们可以隐藏在代理之后,但这不是欺骗)。只要代理/ IP的数量比可能的代码数量小得多,就不会出现IP限制的问题。
您可能使请求变得昂贵-使用质询-响应系统使客户端进行大量的哈希迭代来对请求进行速率限制(请参阅hashcash)。如果花费1秒,那将大大限制潜在的请求率,但不会对实际用户造成过多的惩罚。