【发布时间】:2011-07-19 07:56:34
【问题描述】:
我需要检测我网站上的信息抓取。我尝试了基于行为模式的检测,它似乎很有希望,虽然计算量相对较大。
基础是收集某些客户端的请求时间戳,并将其行为模式与普通模式或预计算模式进行比较。
更准确地说,我将请求之间的时间间隔收集到数组中,按时间函数索引:
i = (integer) ln(interval + 1) / ln(N + 1) * N + 1
Y[i]++
X[i]++ for current client
其中 N 是时间(计数)限制,大于 N 的间隔将被丢弃。最初 X 和 Y 用 1 填充。
然后,在我在 X 和 Y 中获得足够数量的它们之后,就该做出决定了。标准是参数C:
C = sqrt(summ((X[i]/norm(X) - Y[i]/norm(Y))^2)/k)
其中 X 是某些客户端数据,Y 是公共数据,norm() 是校准函数,k 是归一化系数,取决于 norm() 的类型。有3种:
norm(X) = summ(X)/count(X), k = 2-
norm(X) = sqrt(summ(X[i]^2), k = 2 norm(X) = max(X[i]), k is square root of number of non-empty elements X
C 在 (0..1) 范围内,0 表示没有行为偏差,1 表示最大偏差。
类型 1 的校准最适合重复请求,类型 2 最适合以少量间隔重复请求,类型 3 最适合非恒定请求间隔。
你怎么看?如果您能在您的服务上试用此功能,我们将不胜感激。
【问题讨论】:
-
我只想说:抓取永远存在。在未来,您至少应该考虑一种适合 21 世纪的商业模式。
标签: algorithm security screen-scraping detection