一种异常访问请求筛选方法及装置与流程

文档序号:19156015发布日期:2019-11-16 00:47阅读:195来源:国知局
一种异常访问请求筛选方法及装置与流程
本发明涉及计算机
技术领域
,具体涉及一种异常访问请求筛选方法及装置。
背景技术
:网站是给用户输出数据的,这时有些用户处于各种原因,使用机器模拟人类的网页访问请求。这样的机器访问一般量很大还很频繁,网站核心数据被不法分子爬取,或者核心接口被大量刷量。反抓站系统是封禁这部分非正常访问的系统。这里针对一种情况:用户可以手动发起提升某特定内容的排序的请求。不法分子使用多ip发起请求,情况有二:第一是不法分子在其电脑上写好刷站请求脚本,然后请求一定次数或一定时间后,主动更换其ip。第二是不法分子在一些云服务器产品上部署自己的刷站脚本,因为云服务器ip的动态性导致多ip访问。这两点的共同特征是:请求由于来自同一脚本,其ip虽然不同,但是其url确大致相似,且都和正常用户的请求有较大差别。比如在内容排序的情况下,一伙不法分子通过计算机脚本来提升某特定内容的排序。这类累积量性质的数值不容易通过普通反抓站来封禁。在技术一里,这一类脚本的动作通过手动的方式筛查。简单来说,发现内容排序有问题的时候,手动取出最近10分钟的日志,进行对内容编号和提升排序次数的统计,找出其中短时间内由大量ip提升大量排序的内容并且进行剔除。其存在1)纯手工,工作量大;2)以及容易误伤真正的热门内容的问题。技术实现要素:本发明实施例提供一种异常访问请求筛选方法及装置,可以进行自动化、高准确度的异常访问请求分析。为达到上述目的,一方面,本发明实施例提供了一种异常访问请求筛选方法,所述方法包括:提取设定时间间隔内的访问请求日志的统一资源定位符url;计算每两个url之间的相似度,并根据所述每两个url之间的相似度,建立距离矩阵;根据所述距离矩阵,通过聚类算法将所述url进行聚类;根据所述url的聚类结果,按类别进行异常访问请求筛选。另一方面,本发明实施例提供了一种视频下架检测装置,所述装置包括:url获取单元,用于提取设定时间间隔内的访问请求日志的统一资源定位符url;矩阵单元,用于计算每两个url之间的相似度,并根据所述每两个url之间的相似度,建立距离矩阵;聚类单元,用于根据所述距离矩阵,通过聚类算法将所述url进行聚类;筛选单元,用于根据所述url的聚类结果,按类别进行异常访问请求筛选。上述技术方案具有如下有益效果:本发明的技术方案由于在使用了基于url相似度加聚类算法的判别方法,现在被刷榜的内容基本不需要人工干预,并且能够实时处理刷量了,这样榜的排名基本不会被刷站脚本影响。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例的一种异常访问请求筛选方法的流程图;图2是本发明实施例的一种异常访问请求筛选装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明中涉及的部分缩略语和关键术语定义:反抓站系统:网站是给用户输出数据的,这时有些用户处于各种原因,使用机器模拟人类的网页访问请求。这样的机器访问一般量很大还很频繁,对服务器的健康状态会造成不良的影响。反抓站系统是封禁这部分非正常访问的系统。反抓站系统分析实时访问日志,并且判别抓站ip,再维护一个封禁ip的数据库。url:如下是url:abc.com/user?u=1则其中的abc.com是域名,/user是接口,u=1是参数。编辑距离:是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。莱文斯坦距离:又称levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。两个字符串的相似度计算:similarity=(max(x,y)-levenshtein)/max(x,y),其中x,y为源串和目标串的长度。minhash相似度:两个字符串之间的minhash相似度是通过minhash算法得出的,是一种近似但计算速度非常快的方法。聚类算法:一类能把数据集中的相似数据划分为一类的算法如图1所示,是本发明实施例一种异常访问请求筛选方法的流程图,所述方法包括:s101:提取设定时间间隔内的访问请求日志的统一资源定位符url。s102:计算每两个url之间的相似度,并根据所述每两个url之间的相似度,建立距离矩阵。优选地,所述计算每两个url之间的相似度,并根据所述每两个url之间的相似度,建立距离矩阵,包括:对任意两个urli和urlj,将两个url的字符串之间的相似度作为urli和urlj之间的相似度jij;根据每两个url之间的相似度建立距离矩阵x,其中距离矩阵中元素xij=1-jij。s103:根据所述距离矩阵,通过聚类算法将所述url进行聚类。优选地,所述根据所述距离矩阵,通过聚类算法将所述url进行聚类,包括通过计算机程序设计语言python的密度聚类算法hdbscan对所述距离矩阵进行聚类。s104:根据所述url聚类后的结果,按类别进行异常访问请求筛选。优选地,所述对所述url按照聚类后的结果进行异常请求的筛选,包括:按类别获取每一类别的url对应的日志附带信息;在一个类别的url对应的日志附带信息中,若异常附带信息满足设定条件,则判定该类别的url对应的访问请求为异常请求。进一步地,所述访问请求日志中的附带信息包括:请求ip、用户账号、需要提升排序的目标id;以及,异常附带信息满足设定条件的判定方法,包括:当所述附带信息为请求ip时,所述异常附带信息满足设定条件是指:请求ip中代理ip所占的比例超出设定的第一比例阈值;当所述附带信息为用户账号时,所述异常附带信息满足设定条件是指:用户账号去重之后的账号数与该类别中用户账号总数之间的比例低于设定的第二比例阈值;当所述附带信息为需要提升排序的目标id时,所述异常附带信息满足设定条件是指:出现次数最多的目标id的出现次数与该类别中目标id的出现总次数之间的比例超出设定的第三比例阈值。如图2所示,是本发明实施例一种异常访问请求筛选装置的结构示意图,所述装置包括:url获取单元21,用于提取设定时间间隔内的访问请求日志的统一资源定位符url;矩阵单元22,用于计算每两个url之间的相似度,并根据所述每两个url之间的相似度,建立距离矩阵;聚类单元23,用于根据所述距离矩阵,通过聚类算法将所述url进行聚类;筛选单元24,用于根据所述url的聚类结果,按类别进行异常访问请求筛选。优选地,所述矩阵单元22具体用于:对任意两个urli和urlj,将两个url的字符串之间的相似度作为urli和urlj之间的相似度jij;根据每两个url之间的相似度建立距离矩阵x,其中距离矩阵中元素xij=1-jij。优选地,所述聚类单元23具体用于:通过计算机程序设计语言python的密度聚类算法hdbscan对所述距离矩阵进行聚类。优选地,所述筛选单元24具体用于:按类别获取每一类别的url对应访问请求日志中的附带信息;在一个类别的url对应的附带信息中,若异常附带信息满足设定条件,则判定该类别的url对应的访问请求为异常请求。进一步优选地,所述访问请求日志中的附带信息包括:请求ip、用户账号、需要提升排序的目标id;以及,以及,所述筛选单元具体用于:当所述附带信息为请求ip时,若请求ip中代理ip所占的比例超出设定的第一比例阈值,则判定该类别的url对应的访问请求为异常请求;当所述附带信息为用户账号时,若用户账号去重之后的账号数与该类别中用户账号总数之间的比例低于设定的第二比例阈值,则判定该类别的url对应的访问请求为异常请求;当所述附带信息为需要提升排序的目标id时,若出现次数最多的目标id的出现次数与该类别中目标id的出现总次数之间的比例超出设定的第三比例阈值,则判定该类别的url对应的访问请求为异常请求。下面结合具体实施例,对本说明书提供的异常访问请求筛选的具体实施过程做详细描述,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。1.每隔3分钟,就把提升排序的请求日志收集起来,提取出url。一共m条2.对于第i条日志,求其相对于第j条日志的相似度jij(similarity),i和j都是从0到m-1,形成距离矩阵x。xij=1-jij。3.在已知所有日志之间的相似度之后,对矩阵x进行聚类算法的运算4.聚类结果是很多很多相似的聚类,一个类里面的日志彼此很相似,而类与类之间的日志相似度较低。可选的使用矩阵可视化的方法让工作更简单明了。5.只需对聚类进行筛选即可找出有问题的被刷的内容。这里可选的做成自动化:就是在日志中找一些其它特征来辅助判断,可以让筛选的效率成倍提升。6.找出这一部分被刷的内容id,并统计该簇的数据点个数(即被刷量),在总数中减去被刷的量。对于两字符串的相似度计算,例如:1.两个字符串的相似度similarity=(max(x,y)-levenshtein)/max(x,y),其中x,y为源串和目标串的长度。2.levenshtein距离的计算代码,递归方法:下面是本发明以具体应用的实施例:由提升排位的日志得到一批ip,假设其中一ip请求url如下(l):abc.com/u?ntype=wifi&d=1001&u=gas&mid=3381abc.com/u?ntype=wifi&d=1001&u=gms&mid=3381abc.com/u?ntype=wifi&d=1001&u=gamk&mid=3381abc.com/u?ntype=wifi&d=1001&u=peas&mid=3381abc.com/u?ntype=3g&d=100299&u=monk&inter=true&iv=22ddac4f&mid=122abc.com/u?ntype=mobile&d=3282&u=onelifee&b=isc&mid=22399明显可知一到四是脚本请求,现在假设接收到这些日志,编号为0-5现在先求每两个日志之间的相似度j。然后令距离=1-j,得到距离矩阵x如下表:x012345000.20.20.21110.200.20.21120.20.200.21130.20.20.201141111015111110然后对x进行聚类算法的运算,在工业实践中我选用了python的hdbscan,简单方便,任意一种聚类算法都可以。labels_=hdbscan.hdbscan(x,metric="precomputed")只需1行代码,聚类就已经完成,labels_[0]现在是[0,0,0,0,1,2],意思是前4个在同一类里,第5个是一类,第六个是一类。现在如果手工筛选,已经只需要筛选3个类了,简单方便。实际应用中能降低到1/1000.可选的,日志里如果有其它辅助判断的信息也可以拿过来进一步辅助筛查。比如请求ip是否是代理,这一类里的代理ip占比等。形成若干个指标,再从所有类里筛选满足指标的类,比如代理ip占比大于90%等。这样剩下的就认为是异常类找出这一部分被刷的内容id,并统计该簇的数据点个数(即被刷量),在总数中减去被刷的量。这里的日志附带信息有很多种,但都是辅助性的,如代理ip比例,越高越不正常,去重之后的账号数越低越不正常,所要提升排序的目标id越少越不正常等。其中,对话题刷榜的情况来说,目标id是话题编号;对刷关注的情况来说,目标id是被关注人账号;这个最多的目标id在聚簇中占比越高越有问题。虽然不能直接以这些信息判断单次请求的异常。但是对于上述任一附带信息,如果是一整个聚簇都有这样的特征的话,可以认为聚簇里全部是异常请求。可选的,可以选用可视化工具来可视化x,更加直观简洁。应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个装置的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1