【发布时间】:2018-09-18 16:10:30
【问题描述】:
我不知道如何处理这种情况。我有一个目录,我可以在其中计算每个项目的综合浏览量。对于经过身份验证的用户,我仅在请求之间延迟 200 秒后才算作新的综合浏览量。对于未经身份验证的用户,我使用 IP 以及 200 秒的延迟。
我使用redis SETEX进行验证,然后密钥将在200秒后过期。如果键不存在,则插入新的页面视图。
像这样的
-
item_id:user_id(经过身份验证的用户) -
item_id:ip(未经身份验证的用户)
嗯,在用户尝试有意增加特定项目的页面浏览量之前,这可以正常工作。仅在昨天,我对特定项目的浏览量接近 3000 次(去年该页面只有 150 次浏览量......)。因此,他创建了一些机器人来延迟访问该页面以避免我的验证。
我需要注册合法的综合浏览量,但我需要避免欺诈类型。任何想法?
【问题讨论】:
-
这个问题很自以为是,不太适合 Stack Overflow。
-
不过:您可以通过更改“页面浏览量”的定义来避免欺诈。一些众所周知的测量页面浏览量的工具,如谷歌分析,使用超时来避免双重浏览量,但也显示独特点击(不计算会话中的双重点击)之类的东西,除此之外,它们还记录其他流量信息,例如用户代理,通常可以用来避免某些(搜索)机器人。然而,防止垃圾邮件即使不是不可能也是非常困难的,因为机器人可以很容易地伪装成人类,除非您构建一些人工验证系统,例如验证码。
-
您对欺诈的定义是什么?您创建了一个规则来过滤相隔不到 200 秒的请求,但似乎这不是将“欺诈”视图与“合法”视图区分开来的规则。如果您准确地指定您的“欺诈”定义,您可以设计一个适当的过滤器,例如:max. 2 次观看/小时,最多每天 4 次,每月最多 8 次。
-
@TomLankhorst 目前我对欺诈没有确切的定义。但是当我每 X 秒在日志中看到一个请求时,我知道这对于真实用户来说不是正常行为。但是,创建一个规则来确定请求是否连续并按身份分组并不容易。
标签: algorithm automation bots