CN111651789A - 一种基于扫描***的多线程安全批量反馈的方法及装置 - Google Patents
一种基于扫描***的多线程安全批量反馈的方法及装置 Download PDFInfo
- Publication number
- CN111651789A CN111651789A CN202010507302.3A CN202010507302A CN111651789A CN 111651789 A CN111651789 A CN 111651789A CN 202010507302 A CN202010507302 A CN 202010507302A CN 111651789 A CN111651789 A CN 111651789A
- Authority
- CN
- China
- Prior art keywords
- thread
- memory
- scanning
- feedback
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于扫描***的多线程安全批量反馈的方法及装置,所述方法包括:邮件批量进入扫描***,得出扫描反馈结果;将扫描反馈结果同步存入mysql数据库及多线程内存;为多线程分配任务,使其从内存中读取任务数据;为每个ip分配一个线程,对各个线程,执行从内存中获取数据,并删除内存中整理完毕的数据的操作,使各线程向邮件代理服务器反馈信息;对于反馈成功的线程,在mysql数据库中删除相应数据;对于未反馈成功的线程,在内存中恢复与数据。根据本发明的方案,保证数据传输的安全性、保障性的同时还保证了数据的时效性,能有效地解决面向多服务器传输信息的准确和效率性问题。并使得内存和数据库相结合,具有数据的完整性和可恢复性。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种基于扫描***的多线程安全批量反馈的方法及装置。
背景技术
随着互联网技术的日益成熟,越来越多的信息通过邮件传送。对于企业内部,需要保证信息的安全,防止内部数据泄漏。目前可以通过数据防泄漏***对企业内部外发的邮件进行扫描,将扫描到的涉嫌泄漏数据的邮件进行反馈,即将扫描结果进行传输,达到防止数据泄漏的目的。
在数据防泄漏产品中,旁路模式的扫描***对于反馈的扫描结果的效率有非常高的要求,需要迅速地将扫描结果反馈给第三方***,因此,反馈的扫描结果的传输需要在保证安全性、保障性的同时,还需要保证反馈的数据的时效性。但目前的数据防泄漏产品还没有做到在保证安全性、保障性的同时,还保证反馈的数据的时效性。
发明内容
为解决上述技术问题,本发明提出了一种基于扫描***的多线程安全批量反馈的方法及装置,所述方法及装置,用以解决现有技术中缺少在保证安全性、保障性的同时,还保证反馈的数据的时效性的数据防泄露产品的技术问题,以及如何将反馈的数据反馈给多个第三方***。
根据本发明的第一方面,提供一种基于扫描***的多线程安全批量反馈的方法,所述方法包括以下步骤:
步骤S101:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
步骤S102:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
步骤S103:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
步骤S104:开启线程定时轮询;
步骤S105:判断内存中ConcurrentHashMap是否为空,若是,方法结束;若否,进入步骤S106;
步骤S106:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
步骤S107:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;对于反馈成功的线程,进入步骤S108;对于未反馈成功的线程,进入步骤S109;
步骤S108:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
步骤S109:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时,进入步骤S105。
进一步地,所述步骤S101,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列,包括:
为每封邮件分配一个唯一标识sid,将邮件的smtp协议中的邮件基本信息、邮件存储在服务器的全路径名称及sid进行组合,生成json格式的组合数据,并将该组合数据及与该组合数据对应的邮件加入扫描任务队列。
进一步地,所述多线程内存为使用ConcurrentHashMap机制的内存。
进一步地,所述步骤S106,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作,包括:
整理与该ip对应的内存中的列表中全部键值对,遍历该列表中的全部键值对,记录全部键值对,在内存中删除与该ip对应的列表。
根据本发明第二方面,提供一种基于扫描***的多线程安全批量反馈的装置,所述装置包括:
获取扫描反馈结果模块:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
存储模块:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
多线程模块:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
定时轮询开启模块:开启线程定时轮询;
第一判断模块:判断内存中ConcurrentHashMap是否为空;
数据处理模块:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
反馈模块:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;
第一反馈处理模块:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
第二反馈处理模块:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时。
进一步地,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列,包括:
为每封邮件分配一个唯一标识sid,将邮件的smtp协议中的邮件基本信息、邮件存储在服务器的全路径名称及sid进行组合,生成json格式的组合数据,并将该组合数据及与该组合数据对应的邮件加入扫描任务队列。
进一步地,所述多线程内存为使用ConcurrentHashMap机制的内存。
进一步地,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作,包括:
整理与该ip对应的内存中的列表中全部键值对,遍历该列表中的全部键值对,记录全部键值对,在内存中删除与该ip对应的列表。
根据本发明第三方面,提供一种基于扫描***的多线程安全批量反馈的***,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的一种基于扫描***的多线程安全批量反馈的方法。
根据本发明第四方面,提供一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的一种基于扫描***的多线程安全批量反馈的方法。
根据本发明的上述方案,保证了数据传输的安全性、保障性的同时还保证了数据的时效性,具有较好的信息传输失败时的容错率,具有多线程批量反馈和***崩溃恢复机制,能有效地解决面向多服务器传输信息的准确和效率性问题。并使得内存和数据库相结合,具有数据的完整性和可恢复性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明提供如下附图进行说明。在附图中:
图1为本发明一个实施方式的基于扫描***的多线程安全批量反馈的方法流程图;
图2为本发明一个实施方式的用于实现基于扫描***的多线程安全批量反馈的方法的***结构框图;
图3为本发明一个实施方式的用以实现基于扫描***的多线程安全批量反馈的方法的架构图;
图4为本发明一个实施方式的基于扫描***的多线程安全批量反馈的装置结构框图。
具体实施方式
定义:
扫描***:是指对文件内容进行有目的性扫描,通过匹配关键字、正则表达式、文档指纹等信息,根据匹配结果确定扫描结果,并将匹配结果进行整理封装的***。
ConcurrentHashMap:是Java中的一个线程安全且高效的HashMap实现,涉及高并发时采用的map结构。其与JDK1.8HashMap结构类似,当链表节点数超过指定阈值时,会转换成红黑树,其中抛弃了原有的Segment分段锁,而采用了CAS+synchronized来保证并发安全性,实现减小锁粒度,还设计了MOVED状态,当resize的中过程中线程2还有put数据时,线程2会帮助resize,增大运行效率。
Mysql:是一个轻量级关系型数据库管理***,由瑞典MySOL AB公司开发,目前属于Oracle公司。MySQL被广泛地应用在Internet上的中小型网站中。其将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性,具有体积小、速度快、成本低、开放源码、免费等优点。
ThreadPoolExecutor:并发包中提供的一个线程池服务,线程池刚创建时,线程池里面并没有线程,任务队列是作为参数传进来的,调用execute()等方法添加一个任务,如果正在运行的线程数量小于corePoolSize,马上创建线程运行这个任务;如果正在运行的线程数量大于或等于corePoolSize,就将这个任务放入队列;如果队列满了,且正在运行的线程数量小于maximumPoolSize,则创建线程运行这个任务;如果队列满了,且正在运行的线程数量大于或等于maximumPoolSize,则通过handle所指定的策略来处理此任务。当一个线程完成任务时,会从队列中取下一个任务来执行。当一个线程空闲时,若空闲时间超过keepAliveTime,线程池判断当前运行的线程数是否大于corePoolSize,若是,停掉此线程。
首先结合图1说明为本发明一个实施方式的基于扫描***的多线程安全批量反馈的方法流程图。如图1所示,所述方法包括以下步骤:
步骤S101:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
所述邮件可以是发往内网的邮件,也可以是发往外网的邮件;
步骤S102:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
步骤S103:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
步骤S104:开启线程定时轮询;
步骤S105:判断内存中ConcurrentHashMap是否为空,若是,方法结束;若否,进入步骤S106;
步骤S106:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
步骤S107:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;对于反馈成功的线程,进入步骤S108;对于未反馈成功的线程,进入步骤S109;
步骤S108:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
步骤S109:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时,进入步骤S105。
所述步骤S101,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列,包括:
为每封邮件分配一个唯一标识sid,将邮件的smtp协议中的邮件基本信息、邮件存储在服务器的全路径名称及sid进行组合,生成json格式的组合数据,并将该组合数据及与该组合数据对应的邮件加入扫描任务队列。
所述步骤S102,将所述扫描反馈结果同步存入mysql数据库及使用ConcurrentHashMap的内存,提高了数据存储及反馈的时效性。
将所述扫描反馈结果存入mysql数据库,用以在企业内网***崩溃时,从mysql数据库中获取数据,用以恢复数据。将所述扫描反馈结果存入多线程内存,可以为后续提供批量反馈。
所述多线程内存为使用ConcurrentHashMap机制的内存。所述key值为扫描反馈结果中的具体反馈内容,所述具体反馈内容包括Mailld和扫描反馈结果的整合。
本实施例中,将扫描反馈结果中的具体反馈内容作为key值,扫描反馈结果中与该邮件对应的发送该邮件的用户的ip作为value值,可以确保相同的扫描反馈结果只保存一份,不会重复。同时又符合业务逻辑,键值适好为要反馈的内容,无需额外处理。本实施例中,反馈内容为较小的字符串,不会占用太多内存。使value值相同、key值不同的扫描反馈结果存储在同一列表中,使得对于同一ip的多个反馈内容可以同时进行反馈。
本实施例中,MailId为邮件的唯一标识,不同邮件含有不同的MailId,其实质为一个字符串。示例性的,扫描反馈结果包括:“agree”,表明邮件为安全邮件,可放行;“disagree”,表明邮件含有敏感数据,完全拒绝放行;“check”,表明邮件含有敏感数据,但需要审批后决定是否放行;“seperate”,表明邮件含有敏感数据,但邮件需要隔离,由特定审批人进行审批后决定是否放行。扫描反馈结果还可以包括发件人及收件人邮箱信息。
所述步骤S106中,获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中,包括:
利用接口获取当前时间点内存中ConcurrentHashMap中的所有列表中数据的value值,将所有value值存储到列表中,再将所述所有value值存储到set集合中,利用set的哈希去重特性得到无重复的ip集合。
所述步骤S106,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作,包括:
整理与该ip对应的内存中的列表中全部键值对,遍历该列表中的全部键值对,记录全部键值对,在内存中删除与该ip对应的列表。
本实施例中,在内存中删除与该ip对应的列表,即为了节约内存空间,删除已从内存中取出、并即将反馈的内容。
所述使各线程向邮件代理服务器反馈信息,包括:若一个ip需要反馈的信息超过阈值,则分批反馈。
本实施例中,阈值可以根据使用需要、使用频率等设置,例如设置阈值为1000。
图2为本申请一个实施方式的用于实现基于扫描***的多线程安全批量反馈的方法的***结构框图,其中,domino为邮件代理服务器。
以下结合图3说明本申请用以实现基于扫描***的多线程安全批量反馈的方法的一个实施例。
如图3所示,为基于多个邮件代理服务器和多个扫描***实现的邮件的敏感数据防泄漏***。具体流程为,由客户发送邮件,邮件发送到邮件代理服务器处;进入扫描***,对邮件内容进行扫描,将扫描结果存入内存及数据库;线程池的多线程按ip进行批量整理组装扫描结果,并进行反馈;再对批量反馈的结果进行处理,若反馈成功,则删除数据库中对应的数据,若不成功,则将数据存入内存,再等待下一轮处理。
运用本方法,保证了数据传输的安全性、保障性的同时还保证了数据的时效性,具有较好的信息传输失败时的容错率,具有多线程批量反馈和***崩溃恢复机制,能有效地解决面向多服务器传输信息的准确和效率性问题。并使得内存和数据库相结合,具有数据的完整性和可恢复性。可以解决基于扫描***下安全、迅速反馈给多个第三方***的需求问题。经过生产模式及压力测试,此种反馈机制在每秒至少可反馈2000条数据。
本发明实施例进一步给出一种基于扫描***的多线程安全批量反馈的装置,如图4所示,所述装置包括:
获取扫描反馈结果模块:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
存储模块:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
多线程模块:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
定时轮询开启模块:开启线程定时轮询;
第一判断模块:判断内存中ConcurrentHashMap是否为空;
数据处理模块:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
反馈模块:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;
第一反馈处理模块:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
第二反馈处理模块:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时。
本发明实施例进一步给出一种基于扫描***的多线程安全批量反馈的***,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的一种基于扫描***的多线程安全批量反馈的方法。
本发明实施例进一步给出一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的基于扫描***的多线程安全批量反馈的方法。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,实体机服务器,或者网络云服务器等,需安装Windows或者Windows Server操作***)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种基于扫描***的多线程安全批量反馈的方法,其特征在于,包括以下步骤:
步骤S101:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
步骤S102:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
步骤S103:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
步骤S104:开启线程定时轮询;
步骤S105:判断内存中ConcurrentHashMap是否为空,若是,方法结束;若否,进入步骤S106;
步骤S106:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
步骤S107:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;对于反馈成功的线程,进入步骤S108;对于未反馈成功的线程,进入步骤S109;
步骤S108:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
步骤S109:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时,进入步骤S105。
2.如权利要求1所述的基于扫描***的多线程安全批量反馈的方法,其特征在于,所述步骤S101,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列,包括:
为每封邮件分配一个唯一标识sid,将邮件的smtp协议中的邮件基本信息、邮件存储在服务器的全路径名称及sid进行组合,生成json格式的组合数据,并将该组合数据及与该组合数据对应的邮件加入扫描任务队列。
3.如权利要求1所述的基于扫描***的多线程安全批量反馈的方法,其特征在于,所述多线程内存为使用ConcurrentHashMap机制的内存。
4.如权利要求1所述的基于扫描***的多线程安全批量反馈的方法,其特征在于,所述步骤S106,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作,包括:
整理与该ip对应的内存中的列表中全部键值对,遍历该列表中的全部键值对,记录全部键值对,在内存中删除与该ip对应的列表。
5.一种基于扫描***的多线程安全批量反馈的装置,其特征在于,所述装置包括:
获取扫描反馈结果模块:邮件批量进入扫描***的检测器,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列;利用多线程机制,由多线程抢夺扫描任务队列中的任务,对任务进行邮件解析,将与该任务对应的邮件与扫描***中的策略匹配***进行匹配,得出扫描反馈结果;
存储模块:将所述扫描反馈结果同步存入mysql数据库及多线程内存,所述扫描反馈结果以<key,value>形式进行存储,其中,key值为扫描反馈结果中的具体反馈内容,value值为扫描反馈结果中与该邮件对应的发送该邮件的用户的ip;整合所述多线程内存中的数据,在内存中设置若干列表,使value值相同、key值不同的扫描反馈结果存储在同一列表中;
多线程模块:分配线程数量,在线程池中创建与所述分配线程数量对应的多线程,为多线程分配任务,使其从内存中读取列表数据作为对应的任务数据;
定时轮询开启模块:开启线程定时轮询;
第一判断模块:判断内存中ConcurrentHashMap是否为空;
数据处理模块:获取当前时间点内存中的所有列表,将获取的列表中数据对应的value值存储到set集合中;以value值对应的ip作为线程分配标准,为每个ip分配一个线程,对各个线程,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作;使各线程向邮件代理服务器反馈信息,标记各线程id号;
反馈模块:对各个线程,判断其向邮件代理服务器反馈是否成功,根据反馈结果对全部id分类,分为反馈成功及未反馈成功两类;
第一反馈处理模块:对于反馈成功的线程,在mysql数据库中删除与该线程对应的全部数据;
第二反馈处理模块:对于未反馈成功的线程,在内存中恢复与该线程对应的ip值对应的列表中的全部数据,继续监听,根据线程定时轮询结果,等候线程处理时机,到达线程处理时机时。
6.如权利要求5所述的基于扫描***的多线程安全批量反馈的装置,其特征在于,将每封邮件作为一个扫描任务单位,将各邮件加入扫描任务队列,包括:
为每封邮件分配一个唯一标识sid,将邮件的smtp协议中的邮件基本信息、邮件存储在服务器的全路径名称及sid进行组合,生成json格式的组合数据,并将该组合数据及与该组合数据对应的邮件加入扫描任务队列。
7.如权利要求5所述的基于扫描***的多线程安全批量反馈的装置,其特征在于,所述多线程内存为使用ConcurrentHashMap机制的内存。
8.如权利要求5所述的基于扫描***的多线程安全批量反馈的装置,其特征在于,执行从内存中获取与线程对应的ip对应的列表数据,并删除内存中整理完毕的数据的操作,包括:
整理与该ip对应的内存中的列表中全部键值对,遍历该列表中的全部键值对,记录全部键值对,在内存中删除与该ip对应的列表。
9.一种基于扫描***的多线程安全批量反馈的***,其特征在于,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如权利要求1-4之任一项所述的基于扫描***的多线程安全批量反馈的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如权利要求1-4之任一项所述的基于扫描***的多线程安全批量反馈的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010507302.3A CN111651789B (zh) | 2020-06-05 | 2020-06-05 | 一种基于扫描***的多线程安全批量反馈的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010507302.3A CN111651789B (zh) | 2020-06-05 | 2020-06-05 | 一种基于扫描***的多线程安全批量反馈的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651789A true CN111651789A (zh) | 2020-09-11 |
CN111651789B CN111651789B (zh) | 2023-04-14 |
Family
ID=72347325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010507302.3A Active CN111651789B (zh) | 2020-06-05 | 2020-06-05 | 一种基于扫描***的多线程安全批量反馈的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651789B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612619A (zh) * | 2020-11-19 | 2021-04-06 | 北京明朝万达科技股份有限公司 | 一种大附件邮件的多线程并发处理方法及装置 |
CN112966299A (zh) * | 2021-03-03 | 2021-06-15 | 北京中安星云软件技术有限公司 | 一种基于json解析的数据脱敏***及方法 |
WO2022088515A1 (zh) * | 2020-10-28 | 2022-05-05 | 浙江纺织服装职业技术学院 | 一种海量数据处理并发任务自适应测控方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080002595A1 (en) * | 2006-06-23 | 2008-01-03 | Rao Umesh R | Network monitoring system and method thereof |
US20110161437A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Action-based e-mail message quota monitoring |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式***环境下的多任务进程监视方法和监视*** |
CN104301208A (zh) * | 2014-10-31 | 2015-01-21 | 亚信科技(南京)有限公司 | 一种对edm邮件发送后全流程跟踪的方法 |
-
2020
- 2020-06-05 CN CN202010507302.3A patent/CN111651789B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080002595A1 (en) * | 2006-06-23 | 2008-01-03 | Rao Umesh R | Network monitoring system and method thereof |
US20110161437A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Action-based e-mail message quota monitoring |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式***环境下的多任务进程监视方法和监视*** |
CN104301208A (zh) * | 2014-10-31 | 2015-01-21 | 亚信科技(南京)有限公司 | 一种对edm邮件发送后全流程跟踪的方法 |
Non-Patent Citations (2)
Title |
---|
SHI CONG: ""A high speed multi-level-parallel array processor for vision chips"", 《SCIENCE CHINA INFORMATION SCIENCES》 * |
吴刚等: "高速邮件监控审计研究", 《计算机工程与设计》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022088515A1 (zh) * | 2020-10-28 | 2022-05-05 | 浙江纺织服装职业技术学院 | 一种海量数据处理并发任务自适应测控方法及*** |
CN112269660B (zh) * | 2020-10-28 | 2023-04-11 | 浙江纺织服装职业技术学院 | 一种海量数据处理并发任务自适应测控方法及*** |
CN112612619A (zh) * | 2020-11-19 | 2021-04-06 | 北京明朝万达科技股份有限公司 | 一种大附件邮件的多线程并发处理方法及装置 |
CN112612619B (zh) * | 2020-11-19 | 2023-10-20 | 北京明朝万达科技股份有限公司 | 一种大附件邮件的多线程并发处理方法及装置 |
CN112966299A (zh) * | 2021-03-03 | 2021-06-15 | 北京中安星云软件技术有限公司 | 一种基于json解析的数据脱敏***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111651789B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651789B (zh) | 一种基于扫描***的多线程安全批量反馈的方法及装置 | |
US20190266195A1 (en) | Filtering queried data on data stores | |
CN107239381B (zh) | 崩溃信息的处理方法、装置及*** | |
US8949371B1 (en) | Time and space efficient method and system for detecting structured data in free text | |
US20120290927A1 (en) | Data Classifier | |
US20060272006A1 (en) | Systems and methods for processing electronic data | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
JP2006190265A (ja) | サーバー待ち行列システムおよび方法 | |
WO2001027759A2 (en) | Rules-based notification system | |
WO2021190087A1 (zh) | 任务执行方法、装置、***和服务器 | |
EP1586061A1 (en) | Methods, apparatus and computer programs for processing alerts and auditing in a publish/subscribe system | |
CN112291214B (zh) | 一种基于redis缓存的工业报文解析方法及*** | |
US20110125853A1 (en) | System and Method of Handling Electronic Mail Having Attachments | |
US11468107B2 (en) | Enhance a mail application to format a long email conversation for easy consumption | |
CN104618304A (zh) | 数据处理方法及数据处理*** | |
CN110928905A (zh) | 一种数据处理方法和装置 | |
CN110221936A (zh) | 数据库告警处理方法、装置、设备及计算机可读存储介质 | |
CN111651595A (zh) | 一种异常日志处理方法及装置 | |
US11252121B2 (en) | Message sending method and terminal device | |
US20060143150A1 (en) | Messaging system and method of operation thereof | |
CN116628068B (zh) | 一种基于动态窗口的数据搬运方法、***及可读存储介质 | |
CN103078787B (zh) | 邮件处理方法和设备 | |
US20170142058A1 (en) | Email as a transport mechanism for activity stream posting | |
CN111680303A (zh) | 漏洞扫描方法、装置、存储介质及电子设备 | |
WO2019196251A1 (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 |