小编aks*_*aks的帖子

检测网页抓取的方法

我需要在我的网站上检测信息的抓取.我尝试了基于行为模式的检测,虽然相对计算量很大,但似乎很有希望.

基础是收集某个客户端的请求时间戳,并将它们的行为模式与常见模式或预先计算的模式进行比较.

更准确地说,我将请求之间的时间间隔收集到数组中,按时间函数索引:

i = (integer) ln(interval + 1) / ln(N + 1) * N + 1
Y[i]++
X[i]++ for current client
Run Code Online (Sandbox Code Playgroud)

其中N是时间(计数)限制,丢弃大于N的间隔.最初X和Y用1填充.

然后,在我在X和Y中得到足够数量之后,是时候做出决定了.标准是参数C:

C = sqrt(summ((X[i]/norm(X) - Y[i]/norm(Y))^2)/k)
Run Code Online (Sandbox Code Playgroud)

其中X是某些客户数据,Y是公共数据,norm()是校准函数,k是归一化系数,取决于规范()的类型.有3种类型:

  1. norm(X) = summ(X)/count(X), k = 2
  2. norm(X) = sqrt(summ(X[i]^2), k = 2
  3. norm(X) = max(X[i]), k is square root of number of non-empty elements X

C在范围(0..1)内,0表示没有行为偏差,1表示最大偏差.

类型1的校准最适合重复请求,类型2用于重复请求,间隔很少,类型3用于非常量请求间隔.

你怎么看?如果您在服务上尝试这一点,我将不胜感激.

security algorithm screen-scraping detection

11
推荐指数
1
解决办法
8966
查看次数

标签 统计

algorithm ×1

detection ×1

screen-scraping ×1

security ×1