WO2021120628A1 - 基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质 - Google Patents
基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- WO2021120628A1 WO2021120628A1 PCT/CN2020/105055 CN2020105055W WO2021120628A1 WO 2021120628 A1 WO2021120628 A1 WO 2021120628A1 CN 2020105055 W CN2020105055 W CN 2020105055W WO 2021120628 A1 WO2021120628 A1 WO 2021120628A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sensitive
- detection
- parameter data
- sensitive word
- detected
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Machine Translation (AREA)
Abstract
一种基于区块链的敏感词检测方法,涉及区块链技术领域.,包括:当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数(S202);当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件(S204);从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据(S206);根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据(S208);对所述待检测参数数据进行敏感词检测处理(S210)。
Description
相关申请的交叉引用
本申请要求于2019年12月19日提交中国专利局,申请号为2019113141994,申请名称为“基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及区块链技术领域,特别是涉及一种基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质。
区块链信息服务管理中,要求区块链平台需要对违法信息内容及时采取相应的处理措施,防止信息扩散。所以,平台使用者在区块链上发布的信息内容需要及时检测是否有敏感信息,及时予以屏蔽、拒绝处理等。
然而,发明人意识到,传统方法中,是在代码层面,针对区块链平台中的各输入入口处,通过编码加入检测点。但是,区块链平台的输入入口很多,如果针对每个输入入口都通过代码编码的方式加入检测点,会导致对系统的侵入性比较大,从而影响系统的性能。
发明内容
根据本申请公开的各种实施例,提供一种基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质。
一种基于区块链的敏感词检测方法,所述方法包括:
当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;
当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及
对所述待检测参数数据进行敏感词检测处理。
一种基于区块链的敏感词检测装置包括:
解析模块,用于当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
提取模块,用于从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;及
检测模块,用于根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;用于对所述待检测参数数据进行敏感词检测处理。
一种计算机设备,包括存储器和一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述一个或多个处理器执行以下步骤:
当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;
当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及
对所述待检测参数数据进行敏感词检测处理。
一个或多个存储有计算机可读指令的计算机可读存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;
当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及
对所述待检测参数数据进行敏感词检测处理。
上述基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质,当接收到针对区块链的写请求时,从用于执行写请求的方法函数这一方面进行检测控制,当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则说明需要对该写请求进行敏感词检测处理。进而,提取所述写请求中位于所述敏感检测部分的参数数据,并通过所述敏感检测条件,动态地、细粒度地筛选出需要进行敏感词检测的待检测参数数据,进而,对所述待检测参数数据进行敏感词检测处理。相当于,仅通过针对方法函数添加的敏感词检测注解,就可以实现对敏感词检测的控制,相较于传统方法需要针对较多的输入入口进行复杂的代码编码来添加检测点而言,减少了对系统的侵入性,从而提高了系统的性能。此外,通过敏感词检测注解中的敏感检测部分和敏感检测条件,能够细粒度地筛选出需要进行敏感词检测的待检测参数数据,提高了敏感词检测的针对性,从而提高了安全性。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和 优点将从说明书、附图以及权利要求书变得明显。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据一个或多个实施例中基于区块链的敏感词检测方法的应用场景图;
图2为根据一个或多个实施例中基于区块链的敏感词检测方法的流程示意图;
图3为根据一个或多个实施例中基于区块链的敏感词检测方法的架构示意图;
图4为根据一个或多个实施例中基于区块链的敏感词检测方法的流程简示图;
图5为根据一个或多个实施例中基于区块链的敏感词检测装置的框图;
图6为根据一个或多个实施例中计算机设备的框图。
为了使本申请的技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于区块链的敏感词检测方法,可以应用于如图1所示的应用环境中。其中,服务器120分别与终端110和区块链130通过网络进行通信。区块链130中包括多个区块链节点。服务器120,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
终端110可以发送针对区块链的写请求至服务器120,服务器120当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;对所述待检测参数数据进行敏感词检测处理。可以理解,当服务器120检测到待检测参数数据不存在敏感词时,则可以执行该写请求,向区块链130中写入该写请求所对应的数据。当检测到存在敏感词时,则可以不响应该写请求。
在其中一个实施例中,如图2所示,提供了一种基于区块链的敏感词检测方法,以该方法应用于图1中的计算机设备为例进行说明,计算机设备可以为图1中的服务器120为例进行说明,包括以下步骤:
S202,当接收到针对区块链的写请求时,获取用于执行写请求的方法函数。
其中,区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
针对区块链的写请求,是指向区块链写入内容的请求,即用于改变区块链内容的请求。用于执行写请求的方法函数,是指执行写请求所需要调用的方法函数。
可以理解,计算机设备在执行请求时,需要调用相应的方法函数来处理该请求的处理。所以,计算机设备可以获取执行该写请求所需要调用的方法函数。
在其中一个实施例中,针对区块链的写请求,包括应用层通过调用区块链网关层的接口发送的上链请求、以及携带用户针对区块链输入的内容的输入请求中的至少一种。
在其中一个实施例中,步骤S202包括:当检测到应用层通过调用区块链网关层的接口发送的上链请求时,或,当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
可以理解,针对区块链的写请求可以来自至少一个方面或途径。
在其中一个实施例中,用户可以通过终端提供的界面,向区块链输入内容,以生成输入请求发送至计算机设备。该输入请求中即携带用户针对区块链输入的内容。在另一个实施例中,应用层可以通过调用区块链网关层提供的接口,请求将内容在区块链上进行上链,以生成针对区块链的上链请求。其中,区块链网关层,用于实现区块链与外界进行网络通信。上链请求,是指将内容在区块链中上链,即,将内容写入区块链上。可以理解,上链请求,也属于针对区块链的写请求。
S204,当在方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件。
其中,敏感词检测注解,是表征需要进行敏感词检测处理的标记信息。
方法函数所从属的层级,可以是方法函数所直接从属的方法函数层级,也可以是间接从属的类层级。可以理解,类层级是方法函数层级的上一层级,方法函数相当于间接从属于类层级。
可以理解,当在方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则表明需要针对该方法函数所执行的写请求进行敏感词检测处理。当在方法函数所从属的层级的预设位置处,未添加有敏感词检测注解时时,则表明不需要针对该方法函数所执行的写请求进行敏感词检测处理。
在其中一个实施例中,敏感词检测注解可以在方法函数层级进行添加。即,预先以方法函数为粒度,确定是否对其添加敏感词检测注解。那么,所添加的敏感词检测注解,属于局部的敏感词检测注解(比如,@SensitiveWordChecker,可以为局部的敏感词注解)。即,从方法函数层级这一局部上控制是否需要进行敏感词检测。
可以理解,这种情况下,需要针对每个需要进行敏感词检测处理的方法函数,都单独添加相应的敏感词检测注解。比如,方法函数1~3,当需要针对方法函数1和2所执行 的写请求皆要进行敏感词检测处理,而不需要针对方法函数3所执行的写请求进行敏感词检测处理时,则需要在方法函数1所从属的层级的预设位置处,添加一个敏感词检测注解,并在方法函数2所从属的层级的预设位置处,添加一个敏感词检测注解,然后在方法函数3所从属的层级的预设位置处不添加敏感词检测注解。
在另一个实施例中,敏感词检测注解也可以在类层级进行添加。类,是方法函数的上一层级。即,以类为粒度,确定是否添加敏感词检测注解。那么,该敏感词检测注解,属于全局的敏感词检测注解(比如,@EnableSensitiveWordChecker,可以为全局的敏感词注解)。即,从类层级这一全局上控制是否需要进行敏感词检测。
可以理解,这种情况下,若在一个类层级的预设位置上添加敏感词检测注解,那么,则表明需要针对从属于该类层级下的所有方法函数所执行的写请求进行敏感词检测处理。比如,方法函数1~3同属于一个类A下的方法函数,那么,若针对该类A添加敏感词检测注解,则表明需要针对方法函数1~3所执行的写请求皆进行敏感词检测处理。
可以理解,针对一个方法函数添加敏感词检测注解,可以通过针对该方法函数本身添加敏感词检测注解的方式(即,在方法函数层级的预设位置上添加敏感词检测注解)或针对该方法函数所属类添加敏感词检测注解方式(即,在类层级的预设位置上添加敏感词检测注解)来实现。需要说明的是,在方法函数层级的预设位置上添加敏感词检测注解,比在类层级上的预设位置上添加敏感词检测注解的粒度要更细化,从而能够更加准确地控制敏感词检测处理。
因此,计算机设备可以检测是否在该方法函数所属的类层级的第一预设位置上添加敏感词检测注解,或,检测是否在该方法函数所从属的方法函数层级的第二预设位置上添加敏感词检测注解,当在第一预设位置上或在第二预设位置上添加有敏感词检测注解时,则说明该方法函数存在对应的敏感词检测注解,进而可以从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件。
可以理解,敏感词检测注解中包括预先定义的敏感检测部分和敏感检测条件。计算机设备可以从所添加的敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件。
其中,敏感检测部分,是指从写请求所包括的组成部分中,预先定义的需要进行敏感词检测的部分。敏感检测条件,用于从敏感检测部分中的参数数据中,筛选出需要进行敏感词检测处理的待检测参数数据。敏感检测条件为至少一项。
可以理解,写请求中包括多个组成部分,每个组成部分都包括多个参数数据,可以通过敏感词检测注解预先定义出敏感检测部分。
在其中一个实施例中,写请求的参数数据中包括四个组成部分:请求头(request header)、请求体(request body)、请求范围(request parameter),以及方法函数上的参数数据。所以,可以通过敏感词检测注解预先指定全部或者部分的组成部分作为敏感检测部分。比如,指定只检查request body这一部分中的参数数据,则敏感词检测注解可以为: @SensitiveWordChecker(requestParts={request.body}),即,在敏感词检测注解中指定“请求头(request header)”这部分为敏感检测部分。
S206,从写请求所包括的组成部分中,查找属于敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据。
可以理解,敏感检测部分中包括至少一条参数数据。计算机设备可以从写请求中定位该指定的敏感检测部分,并从该敏感检测部分中提取参数数据。
同样结合上述例子,假设,在敏感词检测注解中指定“请求头(request header)”这个组成部分为敏感检测部分,那么,则可以提取位于写请求的“请求头”这个组成部分中的参数数据。
S208,根据敏感检测条件,从参数数据中,筛选出需进行敏感词检测的待检测参数数据。
其中,待检测参数数据,是确定出的待进行敏感词检测处理的参数数据。
具体地,计算机设备可以将提取的参数数据,与敏感检测条件进行匹配,根据匹配结果,从提取的参数数据中,筛选过滤出需进行敏感词检测的待检测参数数据。
在其中一个实施例中,敏感检测条件,可以包括参数数据筛选条件和参数数据排除条件中的至少一种。步骤S208包括:当提取的所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据;和/或,当提取的所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
其中,参数数据筛选条件,用于筛选出需要进行敏感词检测的待检测参数数据。参数数据排除条件,用于排除不需要进行敏感词检测的参数数据。非检测参数数据,是不需要检测敏感词检测的参数数据。
具体地,计算机设备可以将提取的参数数据,与参数数据筛选条件和/或参数数据排除条件进行匹配。计算机设备可以获取符合该参数数据筛选条件的参数数据,和/或获取过滤掉符合该参数数据排除条件的非检测参数数据后剩余的参数数据,得到待检测参数数据。即,待检测参数数据可以包括符合参数数据筛选条件的参数数据,和/或,从提取的参数数据中过滤掉符合参数数据排除条件的非检测参数数据后剩余的参数数据。
在其中一个实施例中,参数数据筛选条件,可以为包含条件表达式(即,include表达式)。可以理解,符合包含条件表达式的参数数据,即为待检测参数数据。参数数据排除条件,可以为不包含条件表达式(即,exclude条件表达式)。可以理解,符合不包含条件表达式的参数数据,即为需要排除掉的非检测参数数据。
在其中一个实施例中,包含条件表达式和不包含条件表达式,可以是Spring EL格式。
为了便于理解,现举例说明。假设,在敏感词检测注解中指定“请求头(request header)”这个组成部分为敏感检测部分,提取的位于写请求的“请求头”这个组成部分的参数数据 有5条,那么,就可以将这5条参数数据分别与各项敏感检测条件进行匹配。比如,可以将这5条参数数据分别与条件表达式和/或不包含条件表达式进行匹配。从中可以筛选出3条参数数据为待检测参数数据。则可以针对这筛选出的3条待检测参数数据分别执行步骤S210,以检测这3条待检测参数数据中是否存在敏感词。
S210,对待检测参数数据进行敏感词检测处理。
具体地,计算机设备可以加载敏感词库到树图(TreeMap)中,并构建成敏感词AC(Aho-Corasick)状态机树。计算机设备可以通过分词工具(比如,nlp工具)对待检测参数数据进行分词处理,得到分词后的字符串。进一步地,计算机设备可以对分词后的字符串进行去冗余处理(比如,去除重复的词或者不必要的语气词),并对去冗余处理后的字符串做拼接,生成最终的待检测字符串。计算机设备可以将最终的待检测字符串在构建的敏感词AC状态机树中进行匹配查询,若匹配到,则判定该待检测参数数据中存在敏感词,若未匹配到,则判定该待检测参数数据中不存在敏感词。
比如,去冗余处理后的字符串为"你"\n"好"\p,"这是"\ne,"好"\p,"电影"\na,对其做拼接,生成最终待检测字符串(e.g"你","好","这是","好","电影")。
在其中一个实施例中,可以对敏感词库进行升级更新。具体地,可以利用爬虫爬取公开的敏感词库网站或者爬取开源平台(比如,github,是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名gitHub)上的敏感词库。当爬取过来的敏感词库中存在新增内容时,可以判断本地已有的敏感词库是否存在该新增的内容,若不存在则以增量的形式添加到本地已有的敏感词库中。
在其中一个实施例中,也可以通过人工标注敏感词的方式,对敏感词库进行更新。具体地,可以提供人工添加词库和查询词库的操作界面,用户可以基于该操作界面,通过人工的方式对本地已有的敏感词库,进行敏感词的修正、添加或删除等处理。
进一步地,当在对待检测参数数据进行敏感词检测处理过程中检测到敏感词时,则中断该写请求。可以理解,计算机设备还可以生成修改提示,以指示对该写请求中携带的待写入区块链的数据内容进行修改。
上述基于区块链的敏感词检测方法,当接收到针对区块链的写请求时,从用于执行写请求的方法函数这一方面进行检测控制,当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则说明需要对该写请求进行敏感词检测处理。进而,提取所述写请求中位于所述敏感检测部分的参数数据,并通过所述敏感检测条件,动态地、细粒度地筛选出需要进行敏感词检测的待检测参数数据,进而,对所述待检测参数数据进行敏感词检测处理。相当于,仅通过针对方法函数添加的敏感词检测注解,就可以实现对敏感词检测的控制,相较于传统方法需要针对较多的输入入口进行复杂的代码编码来添加检测点而言,减少了对系统的侵入性,从而提高了系统的性能。
此外,传统方法需要针对较多的输入入口进行复杂的代码编码来添加检测点,也会导致成本比较高,而本申请实施例中的基于区块链的敏感词检测方法,不需要繁复的代码 编码,所以也能够节省成本。
此外,通过敏感词检测注解中的敏感检测部分和敏感检测条件,能够细粒度地筛选出需要进行敏感词检测的待检测参数数据,提高了敏感词检测的针对性,能够更加灵活、准确地检测敏感词,从而提高了安全性。
在其中一个实施例中,该方法还包括:检测针对所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;当第一预设位置上添加有敏感词检测注解时,则判定在该方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
具体地,计算机设备可以从业务代码中定位该方法函数所属的类层级的入口,检测类层级的入口处是否添加有敏感词检测注解,若有,则判定在该方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
可以理解,当在第一预设位置上未添加敏感词检测注解时,则可以直接判定不需要对写请求进行敏感词检测,也可以进一步地从该方法函数所属的方法函数层级上进行检测,即对该方法函数本身进行检测,以进阶判断在该方法函数所从属的层级的预设位置处,是否添加有敏感词检测注解(即进阶判断是否需要对写请求进行敏感词检测)。
上述实施例中,相当于从类层级来控制敏感词检测的粒度,可以通过类层级添加敏感词检测注解,统一实现对属于该类层级下的所有方法函数的敏感词检测控制,提高了敏感词检测的控制效率。
在其中一个实施例中,该方法还包括:当在第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;从所述代码中的第二预设位置处查找敏感检测标记字符;当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
其中,敏感检测标记字符,是敏感词检测注解的引导字符,用于标记说明存在敏感词检测注解。即,当方法函数的代码中存在敏感检测标记字符,则说明该方法函数代码中设置有敏感词检测注解。敏感检测标记字符,是指预先定义的敏感检测标记字符。
具体地,当在第一预设位置上未添加敏感词检测注解时,计算机设备可以从业务代码中抽取该方法函数的代码。方法函数的代码包含于业务代码中。进一步地,计算机设备可以从该方法函数的代码中,查找指定的敏感检测标记字符。当查找到所述敏感检测标记字符时,则获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。相当于从方法函数层级进一步地进行敏感词检测控制。
比如,@SensitiveWordChecker(requestParts={request.body}),其中,@SensitiveWordChecker即为敏感检测标记字符,requestParts={request.body},即为敏感检测标记字符所标记的敏感词检测注解的具体内容。
上述实施例中,实现了对敏感词检测的二级控制,即除了在类层级进行敏感词检测控制以外,进阶的从方法函数层级进行敏感词检测控制,从而实现了对敏感词检测的更细 粒度地控制。进而提高了安全性。
在其中一个实施例中,在从敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件之前,该方法还包括:解析所述敏感词检测注解中携带的预设检测限制条件;判断所述写请求携带的参数数据是否符合所述预设检测限制条件;当不符合所述预设检测限制条件时,再执行步骤S204中包括的从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件的步骤。
其中,预设检测限制条件,是在敏感词检测注解中预先设置的免敏感词检测的条件。即,若写请求中携带的参数数据满足预设检测限制条件,则表明该写请求不需要进行敏感词检测处理。
具体地,计算机设备可以解析敏感词检测注解,获取该敏感词检测注解中携带的预设检测限制条件,并将写请求中携带的参数数据与该预设检测限制条件进行匹配,当不符合该预设检测限制条件时,说明该写请求不符合免敏感词检测的条件,则再执行步骤S204中包括的从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件、及后续步骤,以对该写请求进行敏感词检测处理。
可以理解,当符合预设检测限制条件时,则对该写请求不执行敏感词检测处理,而是直接调用该写请求所对应的方法函数执行该写请求,以将该写请求所携带的数据内容写入区块链中。
比如,敏感词检测注解为@SensitiveWordChecker(condition="user.token=123")那么,预设检测限制条件即为"user.token=123。若写请求中携带的参数数据中包括123这个token,则说明符合该预设检测限制条件,则不对该写请求进行敏感词检测处理。若写请求中携带的参数数据中不包含123这个token,则说明不符合该预设检测限制条件,则不能免除敏感词检测的处理,则需要执行步骤S204中的从所述敏感词检测注解中,解析针对写请求指定的敏感检测部分和敏感检测条件、及后续步骤。
上述实施例中,在敏感词检测注解中携带的预设检测限制条件,通过判断所述写请求携带的参数数据是否符合所述预设检测限制条件,来确定是否对该写请求进行敏感词检测处理,能够结合写请求自身的情况,更加灵活地进行敏感词检测处理,避免了必须对对应于携带敏感词检测注解的方法函数的写请求进行敏感词检测处理而导致的不准确和过于绝对的问题。进而,在保证安全性的同时,能够避免不必要的检测资源的浪费。
在其中一个实施例中,指定的敏感检测部分为多个。该方法还包括:从所述敏感词检测注解中,获取针对所述敏感检测部分设置的检测优先级;按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤;当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求,且不响应该写请求。
可以理解,指定的敏感检测部分为多个。敏感词检测注解中还配置了检测优先级策略。该检测优先级策略,用于表示针对指定的敏感检测部分所设置的检测优先级。比如, 指定请求头(request header)、请求体(request body)、请求范围(request parameter)这3个部分为敏感检测部分。那么,就可以配置检测优先级策略,以表示针对这3个部分的检测优先级,即,确定对这3个敏感检测部分的检测先后顺序。
具体地,计算机设备可以按照所述检测优先级,依次针对各所述敏感检测部分,执行步骤S206所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤S208~S210的敏感词检测处理。当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求。当检测到当前处理的敏感检测部分中的参数数据不存在敏感词时,则提取位于下一检测优先级的敏感检测部分的参数数据,并继续执行步骤S208~S210。依次类推,直至检测出存在敏感词的参数数据或所有检测部分皆处理完毕为止。
例如requestParts={request.body,request.header},request.body的检测优先级高于request.header。那么,如果检测到request body的参数数据中存在敏感词时,则停止不再查找处于下一检测优先级request.header中的参数数据。如果检测到request body的参数数据中不存在敏感词时,则继续从request header中检测敏感词。
上述实施例中,在敏感词检测注解中设置针对所述敏感检测部分的检测优先级;按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤;当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求。从而避免了针对全部敏感检测部分都进行处理所带来的系统资源的浪费。此外,通过指定多个敏感检测部分,也能够提高对敏感词检测的多方面性和准确性,避免单一敏感检测部分所导致的敏感词漏检测的情况。从而提高了安全性。
图3为一个实施例中基于区块链的敏感词检测方法的架构示意图。参照图3,用户可以输入针对区块链的内容,将该输入的内容通过后台控制台,生成输入请求发送至敏感词检测服务。也可以是,应用系统通过调用区块链网关层服务,将针对区块链的上链请求,发送至敏感词检测服务。该敏感词检测服务,即为实现本申请各实施例中的基于区块链的敏感词检测方法的服务。敏感词检测服务,设置于本申请各实施例中的计算机设备中。即,该敏感词检测服务具备词检测服务(即敏感词检测处理相关的服务功能)和词库更新服务的功能。可以理解,敏感词检测服务对词库进行更新时,可以通过两种途径进行更新。一种是从开源敏感词库或者公开网站中自动爬取敏感词,另一种是通过人工标注词库的方式,来查询、添加和删除敏感词库中的敏感词。
图4为一个实施例中基于区块链的敏感词检测方法的流程简示图。参照图4,业务代码中引入敏感词检测工具包(即sdk)。在待检测方法函数所属的类层级上的第一预设位置上(即接口上)或方法函数所属的方法函数层及的第二预设位置上加入敏感词检测注解@SensitiveWordChecker。计算机设备可以通过敏感词检测服务判断写请求中的参数数据是否符合预设检测限制条件,如果是,则结束。如果否,则通过敏感词检测服务根据该敏感 词检测注解中设定的检测优先级,依次提取当前的敏感检测部分中的参数数据。计算机设备可以通过敏感词检测服务解析所提取的各个参数数据,并根据注解中的包含条件表达式和不包含条件表达式,筛选出最终需要进行敏感词检测的参数数据。进而,调用敏感词检测方法对筛选出的参数数据进行敏感词检测处理。
应该理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各个流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图5所示,提供一种基于区块链的敏感词检测装置500,该装置500包括:解析模块502,、提取模块504、以及检测模块506,其中:
解析模块502,用于当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件。
提取模块504,用于从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据。
检测模块506,用于根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;用于对所述待检测参数数据进行敏感词检测处理。
在其中一个实施例中,解析模块502还用于当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
在其中一个实施例中,解析模块502还用于当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
在其中一个实施例中,解析模块502还用于检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
在其中一个实施例中,解析模块502还用于当在所述第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;从所述代码中的第二预设位置处查找敏感检测标记字符;当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
在其中一个实施例中,解析模块502还用于判断所述写请求携带的参数数据是否符合所述预设检测限制条件;当不符合所述预设检测限制条件时,再执行所述从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件的步骤。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件。检测模块506还用于当提取的所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据排除条件。检测模块506还用于当提取的所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件和参数数据排除条件中的至少一种。提取的参数数据为多个。检测模块506还用于当提取的所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据;当提取的所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,所述指定的敏感检测部分为多个。提取模块504还用于从所述敏感词检测注解中,获取针对所述敏感检测部分设置的检测优先级;按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据,并通知所述检测模块506进行后续处理;所述提取模块504还用于当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求,且不响应该写请求。
关于基于区块链的敏感词检测装置的具体限定可以参见上文中对于基于区块链的敏感词检测方法的限定,在此不再赘述。上述基于区块链的敏感词检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性或易失性存储介质、内存储器。该非易失性或易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储敏感词检测数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种基于区块链的敏感词检测方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机设备,包括存储器和一个或多个处理器,存储器中储存有计算机可读指令,计算机可读指令被处理器执行时,使得一个或多个处理器执行以下步骤:
当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;
当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;
根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及
对所述待检测参数数据进行敏感词检测处理。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;及
当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
当在所述第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;
从所述代码中的第二预设位置处查找敏感检测标记字符;及
当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
解析所述敏感词检测注解中携带的预设检测限制条件;
判断所述写请求携带的参数数据是否符合所述预设检测限制条件;及
当不符合所述预设检测限制条件时,再执行所述从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件的步骤。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件;处理器执行计算机可读指令时还实现以下步骤:
当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词 检测的待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据排除条件;处理器执行计算机可读指令时还实现以下步骤:
当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件和参数数据排除条件;所述参数数据为多个;处理器执行计算机可读指令时还实现以下步骤:
当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据;及
当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,处理器执行计算机可读指令时还实现以下步骤:
从所述敏感词检测注解中,获取针对所述敏感检测部分设置的检测优先级;
按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤;及
当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求,且不响应所述写请求。
一个或多个存储有计算机可读指令的计算机可读存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;
当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;
从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;
根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及
对所述待检测参数数据进行敏感词检测处理。
其中,该计算机可读存储介质可以是非易失性,也可以是易失性的。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求 或输入请求的方法函数。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;及
当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
当在所述第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;
从所述代码中的第二预设位置处查找敏感检测标记字符;及
当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
解析所述敏感词检测注解中携带的预设检测限制条件;
判断所述写请求携带的参数数据是否符合所述预设检测限制条件;及
当不符合所述预设检测限制条件时,再执行所述从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件的步骤。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件;计算机可读指令被处理器执行时还实现以下步骤:
当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据排除条件;计算机可读指令被处理器执行时还实现以下步骤:
当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,所述敏感检测条件包括参数数据筛选条件和参数数据排除条件;所述参数数据为多个;计算机可读指令被处理器执行时还实现以下步骤:
当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据;及
当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
从所述敏感词检测注解中,获取针对所述敏感检测部分设置的检测优先级;
按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤;及
当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求,且不响应所述写请求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
- 一种基于区块链的敏感词检测方法,所述方法包括:当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及对所述待检测参数数据进行敏感词检测处理。
- 根据权利要求1所述的方法,其中,所述当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数包括:当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求1所述的方法,其中,所述当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数包括:当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求1所述的方法,其中,还包括:检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;及当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
- 根据权利要求4所述的方法,其中,还包括:当在所述第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;从所述代码中的第二预设位置处查找敏感检测标记字符;及当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
- 根据权利要求1所述的方法,其中,在从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件之前,所述方法还包括:解析所述敏感词检测注解中携带的预设检测限制条件;判断所述写请求携带的参数数据是否符合所述预设检测限制条件;及当不符合所述预设检测限制条件时,再执行所述从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件的步骤。
- 根据权利要求1所述的方法,其中,所述敏感检测条件包括参数数据筛选条件;所述根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据包括:当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据。
- 根据权利要求1所述的方法,其中,所述敏感检测条件包括参数数据排除条件;所述根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据包括:当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
- 根据权利要求1所述的方法,其中,所述敏感检测条件包括参数数据筛选条件和参数数据排除条件;所述参数数据为多个;所述根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据包括:当所述参数数据符合所述参数数据筛选条件时,则判定所述参数数据为需进行敏感词检测的待检测参数数据;及当所述参数数据符合所述参数数据排除条件时,则判定所述参数数据为不需进行敏感词检测的非检测参数数据;获取从提取的参数数据中过滤掉所述非检测参数数据后剩余的参数数据,得到待检测参数数据。
- 根据权利要求1至9中任一项所述的方法,其中,所述指定的敏感检测部分为多个;所述方法还包括:从所述敏感词检测注解中,获取针对所述敏感检测部分设置的检测优先级;按照所述检测优先级,依次针对各所述敏感检测部分,执行所述提取所述写请求中位于所述敏感检测部分的参数数据及后续步骤;及当检测到当前处理的敏感检测部分中的参数数据存在敏感词时,则停止对下一检测优先级的敏感检测部分的处理,并判定所述写请求为敏感请求,且不响应所述写请求。
- 一种基于区块链的敏感词检测装置,包括:解析模块,用于当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;提取模块,用于从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;及检测模块,用于根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;用于对所述待检测参数数据进行敏感词检测处理。
- 一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及对所述待检测参数数据进行敏感词检测处理。
- 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机可读指令时还执行以下步骤:当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机可读指令时还执行以下步骤:当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机可读指令时还执行以下步骤:检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;及当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
- 一个或多个存储有计算机可读指令的计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:当接收到针对区块链的写请求时,获取用于执行所述写请求的方法函数;当在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解时,则从所述敏感词检测注解中,解析预先定义的敏感检测部分和敏感检测条件;从所述写请求所包括的组成部分中,查找属于所述敏感检测部分的组成部分,并提取所查找到的组成部分中包括的参数数据;根据所述敏感检测条件,从所述参数数据中,筛选出需进行敏感词检测的待检测参数数据;及对所述待检测参数数据进行敏感词检测处理。
- 根据权利要求16所述的计算机可读存储介质,其中,所述计算机可读指令被所述处理器执行时还执行以下步骤:当检测到应用层通过调用区块链网关层的接口发送的上链请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求16所述的计算机可读存储介质,其中,所述计算机可读指令被所述处理器执行时还执行以下步骤:当检测到携带用户针对区块链输入的内容的输入请求时,获取用于执行所述上链请求或输入请求的方法函数。
- 根据权利要求16所述的计算机可读存储介质,其中,所述计算机可读指令被所述处理器执行时还执行以下步骤:检测所述方法函数所从属的类层级的第一预设位置上,是否添加有敏感词检测注解;及当所述第一预设位置上添加有敏感词检测注解时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解。
- 根据权利要求16所述的计算机可读存储介质,其中,所述计算机可读指令被所述处理器执行时还执行以下步骤:当在所述第一预设位置上未添加敏感词检测注解时,则获取所述方法函数的代码;从所述代码中的第二预设位置处查找敏感检测标记字符;及当查找到所述敏感检测标记字符时,则判定在所述方法函数所从属的层级的预设位置处,添加有敏感词检测注解,并获取所述敏感检测标记字符所标记的数据,得到敏感词检测注解。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314199.4A CN111191443A (zh) | 2019-12-19 | 2019-12-19 | 基于区块链的敏感词检测方法、装置、计算机设备和存储介质 |
CN201911314199.4 | 2019-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021120628A1 true WO2021120628A1 (zh) | 2021-06-24 |
Family
ID=70707359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/105055 WO2021120628A1 (zh) | 2019-12-19 | 2020-07-28 | 基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111191443A (zh) |
WO (1) | WO2021120628A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191443A (zh) * | 2019-12-19 | 2020-05-22 | 深圳壹账通智能科技有限公司 | 基于区块链的敏感词检测方法、装置、计算机设备和存储介质 |
CN112532709A (zh) * | 2020-11-24 | 2021-03-19 | 杭州趣链科技有限公司 | 上链请求的处理方法、装置以及区块链节点设备 |
CN113157904B (zh) * | 2021-03-30 | 2024-02-09 | 北京优医达智慧健康科技有限公司 | 基于dfa算法的敏感词过滤方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033855A (zh) * | 2018-07-18 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据传输方法、装置及存储介质 |
CN109726590A (zh) * | 2018-12-24 | 2019-05-07 | 平安普惠企业管理有限公司 | 系统日志脱敏方法、脱敏系统、计算机设备及存储介质 |
CN110119428A (zh) * | 2019-04-19 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 一种区块链信息管理方法、装置、设备及存储介质 |
WO2019191579A1 (en) * | 2018-03-30 | 2019-10-03 | Walmart Apollo, Llc | System and methods for recording codes in a distributed environment |
CN110457957A (zh) * | 2019-08-22 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 电子票据的信息处理方法、装置、电子设备及介质 |
CN110506271A (zh) * | 2017-03-23 | 2019-11-26 | 微软技术许可有限责任公司 | 针对隐私敏感用户内容的可配置注释 |
CN111191443A (zh) * | 2019-12-19 | 2020-05-22 | 深圳壹账通智能科技有限公司 | 基于区块链的敏感词检测方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-19 CN CN201911314199.4A patent/CN111191443A/zh active Pending
-
2020
- 2020-07-28 WO PCT/CN2020/105055 patent/WO2021120628A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110506271A (zh) * | 2017-03-23 | 2019-11-26 | 微软技术许可有限责任公司 | 针对隐私敏感用户内容的可配置注释 |
WO2019191579A1 (en) * | 2018-03-30 | 2019-10-03 | Walmart Apollo, Llc | System and methods for recording codes in a distributed environment |
CN109033855A (zh) * | 2018-07-18 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据传输方法、装置及存储介质 |
CN109726590A (zh) * | 2018-12-24 | 2019-05-07 | 平安普惠企业管理有限公司 | 系统日志脱敏方法、脱敏系统、计算机设备及存储介质 |
CN110119428A (zh) * | 2019-04-19 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 一种区块链信息管理方法、装置、设备及存储介质 |
CN110457957A (zh) * | 2019-08-22 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 电子票据的信息处理方法、装置、电子设备及介质 |
CN111191443A (zh) * | 2019-12-19 | 2020-05-22 | 深圳壹账通智能科技有限公司 | 基于区块链的敏感词检测方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111191443A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446068B (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
WO2021120628A1 (zh) | 基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
WO2020181839A1 (zh) | 页面数据测试方法、装置、计算机设备和存储介质 | |
US9811605B2 (en) | Methods, apparatuses and computer program products for automated learning of data models | |
US9146735B2 (en) | Associating workflows with code sections in a document control system | |
WO2020192134A1 (zh) | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 | |
WO2019061991A1 (zh) | 多元通用模型平台建模方法、电子设备及计算机可读存储介质 | |
CN111027295B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
WO2021068348A1 (zh) | 任务部署方法、系统和存储介质 | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN110647329A (zh) | 代码混淆方法、装置、计算机设备和存储介质 | |
WO2020232883A1 (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
US11416631B2 (en) | Dynamic monitoring of movement of data | |
US10885188B1 (en) | Reducing false positive rate of statistical malware detection systems | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN111324375A (zh) | 代码管理方法、装置、计算机设备和存储介质 | |
CN109542764B (zh) | 网页自动化测试方法、装置、计算机设备和存储介质 | |
CN113326523A (zh) | 一种隐私计算方法、装置及电子设备 | |
US9665732B2 (en) | Secure Download from internet marketplace | |
WO2021139139A1 (zh) | 权限异常检测方法、装置、计算机设备和存储介质 | |
CN111709026B (zh) | 静态安全检测方法、装置、计算机设备和存储介质 | |
WO2023241366A1 (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20901790 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.10.2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20901790 Country of ref document: EP Kind code of ref document: A1 |