检测asp.net中的bot

时间:2011-07-30 06:21:41

标签: security

我有一个应用程序,其中页面上的任何请求必须插入到计数表中,但是我如何检查请求是否是真实用户而不是用户在一秒钟内做出100万请求的某种工具在asp.net中这样吗? 注意:由于用户没有输入任何数据,我无法在此设置验证码或类似内容

3 个答案:

答案 0 :(得分:2)

我猜大多数页面都是通过cookie来实现的,或者它们存储了请求者的IP地址。代理可以伪造,并且有相当多的工具可以做到这一点。

HTH

马里奥

答案 1 :(得分:1)

如果cookie不可能,那么我建议在服务器上进行时间跟踪。我认为你有一些跟踪用户的方法,无论是基于cookie还是通过身份验证(他们登录到你的网站)。 (在不跟踪用户的情况下,计数请求将毫无意义)。

这意味着对于每个用户的每个请求,您都会跟踪两件事:

  • 用户ID
  • 他们请求页面的时间

当他们发出请求时,您递增计数器。如果他们发出另一个请求,则检查上一个请求的时间戳 - 如果太早,则不计算当前请求。可以非常容易地修改此机制,以便每 x 秒只计算一次请求,或者甚至每天只计算1个请求,等等。如果您确定了代表普通用户的连续请求的时间跨度,您可以跳过计算在该时间跨度之前发生的任何请求。或者,您也可以记录那些可疑请求。如果您要向每个请求发送某种类型的数据,则可以不为任何请求发回任何内容。

答案 2 :(得分:0)

您可以检查用户代理并查看请求是否来自网络浏览器。

有关详细信息,请参阅this article