CN108234342A - 基于设备指纹的Nginx动态主动限流方法及系统 - Google Patents
基于设备指纹的Nginx动态主动限流方法及系统 Download PDFInfo
- Publication number
- CN108234342A CN108234342A CN201810072011.9A CN201810072011A CN108234342A CN 108234342 A CN108234342 A CN 108234342A CN 201810072011 A CN201810072011 A CN 201810072011A CN 108234342 A CN108234342 A CN 108234342A
- Authority
- CN
- China
- Prior art keywords
- app
- cid
- difference
- machine
- timestamp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Electric Clocks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种基于设备指纹的Nginx动态主动限流方法,包括:在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,接收APP所在机器的时间戳和APP的cid,并记录本地观察时间,计算出每个APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。本发明能够不用客户端配合即可对恶意用户进行有效识别。本发明还公开了一种基于设备指纹的Nginx动态主动限流系统。
Description
技术领域
本发明属于Nginx技术领域,尤其涉及一种基于设备指纹的Nginx动态主动限流方法及系统。
背景技术
Nginx是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器。
目前,基于Nginx的限流策略是根据请求中的参数,比如用户id、即cid 等,进行限流,cid等参数是可以伪造的,传统的限流方式不能彻底解决恶意用户的攻击。
因此,如何有效的解决恶意用户的攻击是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于设备指纹的Nginx动态主动限流方法,能够不用客户端配合即可对恶意用户进行有效识别。
为了实现上述目的,本发明提供如下技术方案:
一种基于设备指纹的Nginx动态主动限流方法,包括:
在新闻客户端的APP上埋点,定时N秒上报所述APP所在机器的时间戳和所述APP的cid;
接收所述APP所在机器的时间戳和所述APP的cid,并记录本地观察时间;
计算出每个所述APP的cid的时钟偏移;
将所述APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断所述差值是否小于预设阈值;
当所述差值小于所述预设阈值时,对所述差值对应的APP的cid进行限流处理。
优选地,所述方法还包括:
存储APP所在机器的时间戳、所述APP的cid和本地观察时间。
优选地,所述存储APP所在机器的时间戳、所述APP的cid和本地观察时间包括:
存储所述APP所在机器的时间戳、所述APP的cid和本地观察时间至时序数据库。
优选地,所述方法还包括:
将所述时钟偏移存储于数据库。
一种基于设备指纹的Nginx动态主动限流系统,包括:
上传模块,用于在新闻客户端的APP上埋点,定时N秒上报所述APP 所在机器的时间戳和所述APP的cid;
接收模块,用于接收所述APP所在机器的时间戳和所述APP的cid,并记录本地观察时间;
计算模块,用于计算出每个所述APP的cid的时钟偏移;
比较模块,用于将所述APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断模块,用于判断所述差值是否小于预设阈值;
限流模块,用于当所述差值小于所述预设阈值时,对所述差值对应的APP 的cid进行限流处理。
优选地,所述系统还包括:
第一存储模块,用于存储APP所在机器的时间戳、所述APP的cid和本地观察时间。
优选地,所述第一存储模块具体用于:
存储所述APP所在机器的时间戳、所述APP的cid和本地观察时间本地至时序数据库。
优选地,所述系统还包括:
第二存储模块,用于将所述时钟偏移存储于数据库。
从上述技术方案可以看出,本发明提供了一种基于设备指纹的Nginx动态主动限流方法,当需要进行限流时,首先在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收APP所在机器的时间戳和APP的cid,并记录本地观察时间,并计算出每个APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例1的方法流程图;
图2为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例2的方法流程图;
图3为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例3的方法流程图;
图4为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例4的方法流程图;
图5为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例1的结构示意图;
图6为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例2的结构示意图;
图7为本发明公开的一种基于设备指纹的Nginx动态主动限流实施例3 的结构示意图;
图8为本发明公开的一种基于设备指纹的Nginx动态主动限流实施例4 的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例1的流程图,所述方法包括:
S101、在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
S102、接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
S103、计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
S104、将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S105、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S106、当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,并计算出每个 APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图2所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例2的流程图,所述方法包括:
S201、在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
S202、接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
S203、存储APP所在机器的时间戳、APP的cid和本地观察时间;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储。
S204、计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
S205、将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S206、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S207、当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,存储APP所在机器的时间戳、APP的cid和本地观察时间,并计算出每个APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图3所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例3的流程图,所述方法包括:
S301、在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
S302、接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
S303、存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储,将APP所在机器的时间戳、APP的cid和本地观察时间存储至时序数据库。
S304、计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
S305、将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S306、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S307、当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录观察时间,存储APP所在机器的时间戳、APP的cid和观察时间至时序数据库,并计算出每个APP的cid 的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图4所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流方法实施例4的流程图,所述方法包括:
S401、在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
S402、接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
S403、存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储,将APP所在机器的时间戳、APP的cid和本地观察时间存储至时序数据库。
S404、计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
S405、将时钟偏移存储于数据库;
当计算出每个APP的cid的时钟偏移后,将时钟偏移存储于数据库。
S406、将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S407、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S408、当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库,并计算出每个APP 的cid的时钟偏移,将时钟偏移存储于数据库,并将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图5所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例1的结构示意图,所述系统包括:
上传模块501,用于在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
接收模块502,用于接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
计算模块503,用于计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
比较模块504,用于将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块505,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块506,用于当差值小于预设阈值时,对差值对应的APP的cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,并计算出每个 APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图6所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例2的结构示意图,所述系统包括:
上传模块601,用于在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
接收模块602,用于接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
第一存储模块603,用于存储APP所在机器的时间戳、APP的cid和本地观察时间;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储。
计算模块604,用于计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
比较模块605,用于将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块606,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块607,用于当差值小于预设阈值时,对差值对应的APP的cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,存储APP所在机器的时间戳、APP的cid和本地观察时间,并计算出每个APP的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的 cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图7所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例3的结构示意图,所述系统包括:
上传模块701,用于在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
接收模块702,用于接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
第一存储模块703,用于存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储,将APP所在机器的时间戳、APP的cid和本地观察时间存储至时序数据库。
计算模块704,用于计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
比较模块705,用于将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块706,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块707,用于当差值小于预设阈值时,对差值对应的APP的cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库,并计算出每个APP 的cid的时钟偏移,将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图8所示,为本发明公开的一种基于设备指纹的Nginx动态主动限流系统实施例4的结构示意图,所述系统包括:
上传模块801,用于在新闻客户端的APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid;
当需要进行限流控制时,首先在新闻客户端的APP上埋点,并定时N秒上报APP所在机器的时间戳和APP的cid。其中,N可以根据实际限流需求进行灵活设定。
接收模块802,用于接收APP所在机器的时间戳和APP的cid,并记录本地观察时间;
当定时N秒上报APP所在机器的时间戳和APP的cid时,接收APP所在机器的时间戳和APP的cid,并记录接收APP所在机器的时间戳和APP的 cid时的本地观察时间。
第一存储模块803,用于存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库;
当接收到APP所在机器的时间戳和APP的cid,并记录本地观察时间后,对APP所在机器的时间戳、APP的cid和本地观察时间进行存储,将APP所在机器的时间戳、APP的cid和本地观察时间存储至时序数据库。
计算模块804,用于计算出每个APP的cid的时钟偏移;
当接收到APP所在机器的时间戳和APP的cid后,对APP的cid进行计算,计算出该APP的cid的时钟偏移。
第二存储模块805,用于将时钟偏移存储于数据库;
当计算出每个APP的cid的时钟偏移后,将时钟偏移存储于数据库。
比较模块806,用于将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个APP的cid的时钟偏移后,将计算出的APP的cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块807,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块808,用于当差值小于预设阈值时,对差值对应的APP的cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个 APP的cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先在新闻客户端的 APP上埋点,定时N秒上报APP所在机器的时间戳和APP的cid,然后接收 APP所在机器的时间戳和APP的cid,并记录本地观察时间,存储APP所在机器的时间戳、APP的cid和本地观察时间至时序数据库,并计算出每个APP 的cid的时钟偏移,将时钟偏移存储于数据库,并将APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的APP的cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制VLSI电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。
模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。
实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一系统或网络。
本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。
再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种基于设备指纹的Nginx动态主动限流方法,其特征在于,包括:
在新闻客户端的APP上埋点,定时N秒上报所述APP所在机器的时间戳和所述APP的cid;
接收所述APP所在机器的时间戳和所述APP的cid,并记录本地观察时间;
计算出每个所述APP的cid的时钟偏移;
将所述APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断所述差值是否小于预设阈值;
当所述差值小于所述预设阈值时,对所述差值对应的APP的cid进行限流处理。
2.根据权利要求1所述的方法,其特征在于,还包括:
存储APP所在机器的时间戳、所述APP的cid和本地观察时间。
3.根据权利要求2所述的方法,其特征在于,所述存储APP所在机器的时间戳、所述APP的cid和本地观察时间包括:
存储所述APP所在机器的时间戳、所述APP的cid和本地观察时间至时序数据库。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述时钟偏移存储于数据库。
5.一种基于设备指纹的Nginx动态主动限流系统,其特征在于,包括:
上传模块,用于在新闻客户端的APP上埋点,定时N秒上报所述APP所在机器的时间戳和所述APP的cid;
接收模块,用于接收所述APP所在机器的时间戳和所述APP的cid,并记录本地观察时间;
计算模块,用于计算出每个所述APP的cid的时钟偏移;
比较模块,用于将所述APP的cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断模块,用于判断所述差值是否小于预设阈值;
限流模块,用于当所述差值小于所述预设阈值时,对所述差值对应的APP的cid进行限流处理。
6.根据权利要求5所述的系统,其特征在于,还包括:
第一存储模块,用于存储APP所在机器的时间戳、所述APP的cid和本地观察时间。
7.根据权利要求6所述的系统,其特征在于,所述第一存储模块具体用于:
存储所述APP所在机器的时间戳、所述APP的cid和本地观察时间至时序数据库。
8.根据权利要求7所述的系统,其特征在于,还包括:
第二存储模块,用于将所述时钟偏移存储于数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810072011.9A CN108234342B (zh) | 2018-01-25 | 2018-01-25 | 基于设备指纹的Nginx动态主动限流方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810072011.9A CN108234342B (zh) | 2018-01-25 | 2018-01-25 | 基于设备指纹的Nginx动态主动限流方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108234342A true CN108234342A (zh) | 2018-06-29 |
CN108234342B CN108234342B (zh) | 2021-08-13 |
Family
ID=62667437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810072011.9A Active CN108234342B (zh) | 2018-01-25 | 2018-01-25 | 基于设备指纹的Nginx动态主动限流方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108234342B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3617922A1 (en) * | 2018-08-31 | 2020-03-04 | Niometrics (Pte.) Ltd. | Apparatus and methods for deriving fingerprints of communications devices |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072106A (zh) * | 2006-05-12 | 2007-11-14 | 国际商业机器公司 | 用于防御拒绝服务攻击的方法和系统 |
CN101437030A (zh) * | 2008-11-29 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种防止服务器被攻击的方法、检测装置及监控设备 |
CN103384242A (zh) * | 2013-03-15 | 2013-11-06 | 中标软件有限公司 | 基于Nginx代理服务器的入侵检测方法及系统 |
CN103442018A (zh) * | 2013-09-17 | 2013-12-11 | 网宿科技股份有限公司 | Cc攻击的动态防御方法和系统 |
CN103491060A (zh) * | 2012-06-13 | 2014-01-01 | 北京新媒传信科技有限公司 | 一种防御Web攻击的方法、装置、及系统 |
CN105025080A (zh) * | 2015-06-02 | 2015-11-04 | 深圳市创梦天地科技有限公司 | 一种分布式系统的过载保护方法和服务器 |
CN105100070A (zh) * | 2015-06-29 | 2015-11-25 | 北京奇虎科技有限公司 | 防止对接口服务进行恶意攻击的方法及装置 |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN106210129A (zh) * | 2016-08-18 | 2016-12-07 | 中国银行股份有限公司 | 一种基于Web服务器配置的限流方法及系统 |
CN106789831A (zh) * | 2015-11-19 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 识别网络攻击的方法和装置 |
CN106911582A (zh) * | 2017-03-07 | 2017-06-30 | 北京搜狐新媒体信息技术有限公司 | 一种基于Nginx服务器的实时流量控制方法及系统 |
-
2018
- 2018-01-25 CN CN201810072011.9A patent/CN108234342B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072106A (zh) * | 2006-05-12 | 2007-11-14 | 国际商业机器公司 | 用于防御拒绝服务攻击的方法和系统 |
CN101437030A (zh) * | 2008-11-29 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种防止服务器被攻击的方法、检测装置及监控设备 |
CN103491060A (zh) * | 2012-06-13 | 2014-01-01 | 北京新媒传信科技有限公司 | 一种防御Web攻击的方法、装置、及系统 |
CN103384242A (zh) * | 2013-03-15 | 2013-11-06 | 中标软件有限公司 | 基于Nginx代理服务器的入侵检测方法及系统 |
CN103442018A (zh) * | 2013-09-17 | 2013-12-11 | 网宿科技股份有限公司 | Cc攻击的动态防御方法和系统 |
CN105025080A (zh) * | 2015-06-02 | 2015-11-04 | 深圳市创梦天地科技有限公司 | 一种分布式系统的过载保护方法和服务器 |
CN105100070A (zh) * | 2015-06-29 | 2015-11-25 | 北京奇虎科技有限公司 | 防止对接口服务进行恶意攻击的方法及装置 |
CN106789831A (zh) * | 2015-11-19 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 识别网络攻击的方法和装置 |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN106210129A (zh) * | 2016-08-18 | 2016-12-07 | 中国银行股份有限公司 | 一种基于Web服务器配置的限流方法及系统 |
CN106911582A (zh) * | 2017-03-07 | 2017-06-30 | 北京搜狐新媒体信息技术有限公司 | 一种基于Nginx服务器的实时流量控制方法及系统 |
Non-Patent Citations (3)
Title |
---|
WEIXIN_34376562: "nginx对特定参数限流", 《HTTPS://BLOG.CSDN.NET/WEIXIN_34376562/ARTICLE/DETAILS/93319708》 * |
全渝娟,刘桂雄,郑玉红: "基于时间戳报文流的本地时钟漂移补偿时间同步方案研究’", 《内蒙古大学学报》 * |
罗曼: "利用互质增量时间戳解决移动代理的重复攻击", 《湖州师范学院学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3617922A1 (en) * | 2018-08-31 | 2020-03-04 | Niometrics (Pte.) Ltd. | Apparatus and methods for deriving fingerprints of communications devices |
Also Published As
Publication number | Publication date |
---|---|
CN108234342B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194584A (zh) | 一种流量监控方法、装置、计算机设备及存储介质 | |
US20050144532A1 (en) | Hardware/software based indirect time stamping methodology for proactive hardware/software event detection and control | |
US8255920B2 (en) | Time management control method for computer system, and computer system | |
US20160014001A1 (en) | Detailed end-to-end latency tracking of messages | |
MXPA06014827A (es) | Dispositivo mejorador para el procesamiento de estadisticas de red. | |
CN111314174A (zh) | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 | |
CN104281477A (zh) | 一种用于计算机系统的软件自动部署方法 | |
CN108958991A (zh) | 集群节点故障业务快速恢复方法、装置、设备及存储介质 | |
CN109597800A (zh) | 一种日志分发方法及装置 | |
CN108234342A (zh) | 基于设备指纹的Nginx动态主动限流方法及系统 | |
CN109544014A (zh) | 基于历史数据回放的反欺诈方法及装置 | |
CN109474470A (zh) | 一种自监控方法和装置 | |
CN108376154A (zh) | 系统基表同步方法、装置、计算机设备和存储介质 | |
CN104007942A (zh) | 日志的打印控制方法和打印控制装置 | |
CN107704373A (zh) | 一种数据处理方法及装置 | |
CN108234341A (zh) | 基于设备指纹的Nginx动态被动限流方法及系统 | |
US8442947B2 (en) | Management of performance data | |
CN117234696A (zh) | 高频率gnc系统多任务执行策略的确定方法及装置 | |
CN108038127A (zh) | 一种数据同步的方法、装置、终端设备及存储介质 | |
CN110347572A (zh) | 一种性能日志输出方法、装置、系统、设备及介质 | |
CN108416662A (zh) | 一种数据验证方法及装置 | |
CN110321384A (zh) | 一种基于区块链的数据记录方法、装置及电子设备 | |
CN113946515B (zh) | 代码覆盖率测试方法、装置、计算机设备及存储介质 | |
CN106503250B (zh) | 一种日志跟踪方法和装置 | |
CN109522188A (zh) | 一种系统预警方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |