CN111125751A - 数据库的防穿库方法及装置 - Google Patents
数据库的防穿库方法及装置 Download PDFInfo
- Publication number
- CN111125751A CN111125751A CN201911218164.0A CN201911218164A CN111125751A CN 111125751 A CN111125751 A CN 111125751A CN 201911218164 A CN201911218164 A CN 201911218164A CN 111125751 A CN111125751 A CN 111125751A
- Authority
- CN
- China
- Prior art keywords
- keyword
- bloom filter
- database
- keywords
- time length
- 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.)
- Pending
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
- G06F21/6227—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 where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库的防穿库方法及装置,该方法包括:获取访问数据库的关键词;在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。本发明可以有效防止数据库的穿库。
Description
技术领域
本发明涉及互联网领域,尤其涉及一种数据库的防穿库方法及装置。
背景技术
目前业务系统信息都从数据库中获取,如果用户频繁的查询一个一定不存在的数据,每次请求都要到数据库去查询,在流量大时,可能数据库就挂掉了,导致整个服务瘫痪,如果有人利用不存在的key频繁攻击数据库,数据库系统很容易被攻击成功。因此,目前需要一种有效的数据库的防穿库方法。
发明内容
本发明实施例提出一种数据库的防穿库方法,用以有效防止数据库的穿库,该方法包括:
获取访问数据库的关键词;
在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
本发明实施例提出一种数据库的防穿库装置,用以有效防止数据库的穿库,该装置包括:
关键词获取模块,用于获取访问数据库的关键词;
判断模块,用于在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
第一分析模块,用于若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
第二分析模块,用于若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库的防穿库方法。
本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库的防穿库方法的计算机程序。
在本发明实施例中,获取访问数据库的关键词;在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。在上述过程中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词,这样在通过所述关键词访问数据库之前,通过判断是否在第一布隆过滤器和第二布隆过滤器中,可减少访问数据的次数,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第一类拦截;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第二类拦截;从而有效防止了数据库穿库。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中数据库的防穿库方法的流程图;
图2为本发明实施例提出的数据库的防穿库方法的详细流程图;
图3为本发明实施例中数据库的防穿库装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中数据库的防穿库方法的流程图,如图1所示,该方法包括:
步骤101,获取访问数据库的关键词;
步骤102,在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
步骤1201,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
步骤1202,若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
在上述实施例中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词,这样在通过所述关键词访问数据库之前,通过判断是否在第一布隆过滤器和第二布隆过滤器中,可减少访问数据的次数,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第一类拦截;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第二类拦截;从而有效防止了数据库穿库。
具体实施时,在步骤101中之前,需要初始化第一布隆过滤器(Bloom Filter)和第二布隆过滤器,第一布隆过滤器是通过爬取数据库中的关键词(key)构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词,在实现数据库的防穿库方法运行之初,第一布隆过滤器内包含多个关键词,第二布隆过滤器内无任何关键词,即第二布隆过滤器为空,在步骤101中,可以通过接收客户端的请求获得本次访问数据库的关键词;在步骤102中,是对该关键词是否在第一布隆过滤器和第二布隆过滤器的判断。在步骤1201中,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,若查询结果为空,说明数据库中无该关键词,将所述关键词插入至第二布隆过滤器中,并禁止通过该关键词访问数据库,禁止通过该关键词访问数据库可以是一个生成的提醒消息和限制动作的组合,第二布隆过滤器的作用是如果有人利用不存在的同一个关键词频繁攻击数据库,则该关键词可在第二布隆过滤器中查到,步骤1202,可禁止通过该关键词访问数据库。
在一实施例中,所述方法还包括:
在查询结果不为空时,将所述关键词插入至第一布隆过滤器中,允许通过该关键词访问数据库。
在上述实施例中,提供了第一布隆过滤器更新的方法,查询结果不为空,且所述关键词不在第一布隆过滤器中,说明第一布隆过滤器中的关键词不够准确,通过本实施例的更新,可保证第一布隆过滤器中的关键词的精确度,从而提高数据库防穿库的准确性。
在一实施例中,在将所述关键词插入至第一布隆过滤器中之后,还包括:
对所述关键词设置过期时长;
在所述关键词存在第一布隆过滤器的时长超过过期时长后,将所述关键词从第一布隆过滤器中删除;
在将所述关键词插入至第二布隆过滤器中之后,还包括:
对所述关键词设置过期时长;
在所述关键词存在第二布隆过滤器的时长超过过期时长后,将所述关键词从第二布隆过滤器中删除。
在上述实施例中,给出了对第一布隆过滤器和第二布隆过滤器中的关键词进行更新的另一种方法,防止第一布隆过滤器和第二布隆过滤器中的关键词数量过多,且由于长时间不更新造成冗余关键词导致在两个布隆过滤器中检索目标关键词的时间过程,所述过期时长可以根据实际情况制定,且每个关键词的过期时长可以不同,对于数据库中基本不更改的关键词,可以设置为较长时段或永久时段,对于修改频繁的关键词可以设置较短时段,从而实现对布隆过滤器的灵活更新。
在一实施例中,所述方法还包括:
在确定所述关键词在第一布隆过滤器中时,允许通过该关键词访问数据库。
在一实施例中,确定所述关键词不在第一布隆过滤器中,包括:
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第一布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,确定所述关键词在第一布隆过滤器中,否则确定所述关键词不在第一布隆过滤器中;
判断所述关键词是否在第二布隆过滤器中,包括:
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第二布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,所述关键词在第二布隆过滤器中,否则所述关键词不在第二布隆过滤器中。
在上述实施例中,给出的判断关键词是否在第一布隆过滤器和第二布隆过滤器中的具体过程,其中多个信息指纹可以根据实际情况确定数量,例如,可以选择8个,可以用8个随机数产生器(F1,F2,...,F8)对所述关键词产生8个信息指纹s1,s2,...,s8,所述关键词可以是一个字符串,将8个信息指纹映射至第一布隆过滤器的8个二进制位上,若8个二进制位上均为1,确定所述关键词在第一布隆过滤器中,否则确定所述关键词不在第一布隆过滤器中;判断是否在第二布隆过滤器中同理。上述判断过程简单,且不易出错,采用布隆过滤器进行判断的准确率高。
在一实施例中,所述第一布隆过滤器采用如下步骤构建:
从数据库中爬取多个关键词;
根据多个关键词,构建第一布隆过滤器。
在上述实施例中,已有的数据中包括多个关键词,通过爬虫技术等多种方法可爬取多个关键词,并构建第一布隆过滤器。
在一实施例中,根据多个关键词,构建布隆过滤器,包括:
构建一个16亿二进制的常量,将所述常量的16亿个二进制位全部置0;
对每一关键词,采用多个不同的随机产生器产生多个信息指纹;
将所述多个信息指纹映射到1到16亿中的多个自然数上;
将多个自然数对应的二进制位置为1。
在上述实施例中,16亿二进制常量保证布隆过滤器可以存储大量关键词,每个关键词可以采用多个不同的随机产生器产生多个信息指纹,例如,8个不同的随机产生器产生8个信息指纹,然后8个信息指纹映射到1到16亿中的8个自然数上;将8个自然数对应的二进制位置为1,这样第一布隆过滤器就构造好了,另外,由于第二布隆过滤器在启动时一般为空,在每插入一个关键词时,也采用和上述第一布隆过滤器同样的方法。
基于上述实施例,本发明提出如下一个实施例来说明数据库的防穿库方法的详细流程,图2为本发明实施例提出的数据库的防穿库方法的详细流程图,如图2所示,在一实施例中,数据库的防穿库方法的详细流程包括:
步骤201,获取访问数据库的关键词;
步骤202,判断所述关键词是否在第一布隆过滤器中,若是,转入步骤203,否则转入步骤208;
步骤203,判断所述关键词是否在第二布隆过滤器中,若是,进入步骤204,否则,转入步骤205;
步骤204,禁止通过该关键词访问数据库;
步骤205,从数据库中查询该关键词,获得查询结果;在查询结果为空时,进入步骤206,否则转入步骤207;
步骤206,将所述关键词插入至第二布隆过滤器中,转入步骤204和步骤210;
步骤207,将所述关键词插入至第一布隆过滤器中,转入步骤208和步骤209;
步骤208,允许通过该关键词访问数据库;
步骤209,对所述关键词设置过期时长;在所述关键词存在第一布隆过滤器的时长超过过期时长后,将所述关键词从第一布隆过滤器中删除;
步骤210,对所述关键词设置过期时长;在所述关键词存在第二布隆过滤器的时长超过过期时长后,将所述关键词从第二布隆过滤器中删除。
当然,可以理解的是,上述数据库的防穿库方法的详细流程还可以有其他变化例,相关变化例均应落入本发明的保护范围。
综上所述,在本发明实施例提出的方法中,获取访问数据库的关键词;在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。在上述过程中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词,这样在通过所述关键词访问数据库之前,通过判断是否在第一布隆过滤器和第二布隆过滤器中,可减少访问数据的次数,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第一类拦截;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第二类拦截;从而有效防止了数据库穿库。另外,上述方法减少了对数据库的频繁操作,可以节省内存,并保障数据库稳定,通过两个布隆过滤器,可以使得数据库的防穿库方法效率高。
基于同样的发明构思,本发明实施例还提供了一种数据库的防穿库装置,如下面的实施例所述。由于这些解决问题的原理与数据库的防穿库方法相似,因此装置的实施可以参见方法的实施,重复之处不在赘述。
图3为本发明实施例中数据库的防穿库装置的示意图,如图3所示,该装置包括:
关键词获取模块301,用于获取访问数据库的关键词;
判断模块302,用于在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
第一分析模块3021,用于若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
第二分析模块3022,用于若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
在一实施中,第一分析模块3021还用于:
在查询结果不为空时,将所述关键词插入至第一布隆过滤器中,允许通过该关键词访问数据库。
在一实施中,所述装置还包括更新模块303,用于:
在将所述关键词插入至第一布隆过滤器中之后,对所述关键词设置过期时长;
在所述关键词存在第一布隆过滤器的时长超过过期时长后,将所述关键词从第一布隆过滤器中删除;
在将所述关键词插入至第二布隆过滤器中之后,对所述关键词设置过期时长;
在所述关键词存在第二布隆过滤器的时长超过过期时长后,将所述关键词从第二布隆过滤器中删除。
在一实施中,判断模块302还用于:
在确定所述关键词在第一布隆过滤器中时,允许通过该关键词访问数据库。
在一实施中,判断模块302具体用于:
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第一布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,确定所述关键词在第一布隆过滤器中,否则确定所述关键词不在第一布隆过滤器中;
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第二布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,所述关键词在第二布隆过滤器中,否则所述关键词不在第二布隆过滤器中。
在一实施中,所述第一布隆过滤器采用如下步骤构建:
从数据库中爬取多个关键词;
根据多个关键词,构建第一布隆过滤器。
在一实施中,根据多个关键词,构建第一布隆过滤器,包括:
构建一个16亿二进制的常量,将所述常量的16亿个二进制位全部置0;
对每一关键词,采用多个不同的随机产生器产生多个信息指纹;
将所述多个信息指纹映射到1到16亿中的多个自然数上;
将多个自然数对应的二进制位置为1。
综上所述,在本发明实施例提出的装置中,获取访问数据库的关键词;在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。在上述过程中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词,这样在通过所述关键词访问数据库之前,通过判断是否在第一布隆过滤器和第二布隆过滤器中,可减少访问数据的次数,若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第一类拦截;若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库,实现了对访问数据库的第二类拦截;从而有效防止了数据库穿库。另外,上述方法减少了对数据库的频繁操作,可以节省内存,并保障数据库稳定,通过两个布隆过滤器,可以使得数据库的防穿库方法效率高。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据库的防穿库方法,其特征在于,包括:
获取访问数据库的关键词;
在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
2.如权利要求1所述的数据库的防穿库方法,其特征在于,还包括:
在查询结果不为空时,将所述关键词插入至第一布隆过滤器中,允许通过该关键词访问数据库。
3.如权利要求2所述的数据库的防穿库方法,其特征在于,在将所述关键词插入至第一布隆过滤器中之后,还包括:
对所述关键词设置过期时长;
在所述关键词存在第一布隆过滤器的时长超过过期时长后,将所述关键词从第一布隆过滤器中删除;
在将所述关键词插入至第二布隆过滤器中之后,还包括:
对所述关键词设置过期时长;
在所述关键词存在第二布隆过滤器的时长超过过期时长后,将所述关键词从第二布隆过滤器中删除。
4.如权利要求1所述的数据库的防穿库方法,其特征在于,还包括:
在确定所述关键词在第一布隆过滤器中时,允许通过该关键词访问数据库。
5.如权利要求1所述的数据库的防穿库方法,其特征在于,确定所述关键词不在第一布隆过滤器中,包括:
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第一布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,确定所述关键词在第一布隆过滤器中,否则确定所述关键词不在第一布隆过滤器中;
判断所述关键词是否在第二布隆过滤器中,包括:
产生所述关键词的多个信息指纹;
将多个信息指纹映射至第二布隆过滤器的多个二进制位上;
在所述多个二进制位上均为1时,所述关键词在第二布隆过滤器中,否则所述关键词不在第二布隆过滤器中。
6.如权利要求1所述的数据库的防穿库方法,其特征在于,所述第一布隆过滤器采用如下步骤构建:
从数据库中爬取多个关键词;
根据多个关键词,构建第一布隆过滤器。
7.如权利要求6所述的数据库的防穿库方法,其特征在于,根据多个关键词,构建第一布隆过滤器,包括:
构建一个16亿二进制的常量,将所述常量的16亿个二进制位全部置0;
对每一关键词,采用多个不同的随机产生器产生多个信息指纹;
将所述多个信息指纹映射到1到16亿中的多个自然数上;
将多个自然数对应的二进制位置为1。
8.一种数据库的防穿库装置,其特征在于,包括:
关键词获取模块,用于获取访问数据库的关键词;
判断模块,用于在确定所述关键词不在第一布隆过滤器中时,判断所述关键词是否在第二布隆过滤器中,所述第一布隆过滤器是通过爬取数据库中的关键词构建的,所述第二布隆过滤器中用于存储数据库中不存在的关键词;
第一分析模块,用于若所述关键词不在第二布隆过滤器中,从数据库中查询该关键词,获得查询结果,在查询结果为空时,将所述关键词插入至第二布隆过滤器中,禁止通过该关键词访问数据库;
第二分析模块,用于若所述关键词在第二布隆过滤器中,禁止通过该关键词访问数据库。
9.如权利要求8所述的数据库的防穿库装置,其特征在于,第一分析模块还用于:
在查询结果不为空时,将所述关键词插入至第一布隆过滤器中,允许通过该关键词访问数据库。
10.如权利要求9所述的数据库的防穿库装置,其特征在于,还包括更新模块,用于:
在将所述关键词插入至第一布隆过滤器中之后,对所述关键词设置过期时长;
在所述关键词存在第一布隆过滤器的时长超过过期时长后,将所述关键词从第一布隆过滤器中删除;
在将所述关键词插入至第二布隆过滤器中之后,对所述关键词设置过期时长;
在所述关键词存在第二布隆过滤器的时长超过过期时长后,将所述关键词从第二布隆过滤器中删除。
11.如权利要求8所述的数据库的防穿库装置,其特征在于,判断模块还用于:
在确定所述关键词在第一布隆过滤器中时,允许通过该关键词访问数据库。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911218164.0A CN111125751A (zh) | 2019-12-03 | 2019-12-03 | 数据库的防穿库方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911218164.0A CN111125751A (zh) | 2019-12-03 | 2019-12-03 | 数据库的防穿库方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111125751A true CN111125751A (zh) | 2020-05-08 |
Family
ID=70497150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911218164.0A Pending CN111125751A (zh) | 2019-12-03 | 2019-12-03 | 数据库的防穿库方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125751A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682037A (zh) * | 2011-03-18 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 一种数据获取方法、系统及装置 |
CN105282112A (zh) * | 2014-07-15 | 2016-01-27 | 中兴通讯股份有限公司 | 一种终端及检测终端数据交互的安全性的方法 |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN107016296A (zh) * | 2017-01-18 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种数据索引构建、数据读取的方法、装置及电子设备 |
CN109862025A (zh) * | 2019-02-28 | 2019-06-07 | 北京安护环宇科技有限公司 | 基于黑白名单的访问控制方法、装置及系统 |
CN110443014A (zh) * | 2019-07-31 | 2019-11-12 | 成都商汤科技有限公司 | 身份验证方法、用于身份验证的电子设备和服务器、系统 |
-
2019
- 2019-12-03 CN CN201911218164.0A patent/CN111125751A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682037A (zh) * | 2011-03-18 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 一种数据获取方法、系统及装置 |
CN105282112A (zh) * | 2014-07-15 | 2016-01-27 | 中兴通讯股份有限公司 | 一种终端及检测终端数据交互的安全性的方法 |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN107016296A (zh) * | 2017-01-18 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种数据索引构建、数据读取的方法、装置及电子设备 |
CN109862025A (zh) * | 2019-02-28 | 2019-06-07 | 北京安护环宇科技有限公司 | 基于黑白名单的访问控制方法、装置及系统 |
CN110443014A (zh) * | 2019-07-31 | 2019-11-12 | 成都商汤科技有限公司 | 身份验证方法、用于身份验证的电子设备和服务器、系统 |
Non-Patent Citations (1)
Title |
---|
FREE_OPEN: "谈谈布隆过滤器", 《HTTPS://WWW.CNBLOGS.COM/FREEOPEN/P/5482972.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement | |
Roche et al. | A practical oblivious map data structure with secure deletion and history independence | |
Naor et al. | Anti-persistence: History independent data structures | |
US20080059420A1 (en) | System and Method for Providing a Trustworthy Inverted Index to Enable Searching of Records | |
US7975149B2 (en) | Software protection using data structures | |
US11126621B1 (en) | Database methodology for searching encrypted data records | |
CN111971931B (zh) | 在区块链网络中验证交易的方法以及构成该网络的节点 | |
CN111475105B (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN108140050B (zh) | 一种使用布隆过滤器过滤文件的方法及装置 | |
US10528557B1 (en) | Database methodology for searching encrypted data records | |
CN105100050A (zh) | 用户权限管理方法及系统 | |
WO2013143278A1 (zh) | 数据的索引查询方法、装置及系统 | |
CN110489405A (zh) | 数据处理的方法、装置和服务器 | |
US20230274007A1 (en) | Response-Hiding Searchable Encryption | |
CN114117160A (zh) | 一种基于威胁情报的威胁分析图谱生成、应用方法及装置 | |
Chen et al. | A hierarchical clustering method for big data oriented ciphertext search | |
Kim et al. | Hilbert-curve based cryptographic transformation scheme for protecting data privacy on outsourced private spatial data | |
CN110020272B (zh) | 缓存方法、装置以及计算机存储介质 | |
CN107273467A (zh) | 一种支持可搜索加密的安全索引结构及其构造方法 | |
Fu et al. | Data correlation‐based analysis methods for automatic memory forensic | |
CN110945506B (zh) | 支持混合索引的可搜索加密 | |
CN112231752B (zh) | 一种无交互频率隐藏的密文插入查询删除方法 | |
CN111125751A (zh) | 数据库的防穿库方法及装置 | |
CN109992708B (zh) | 一种元数据查询的方法、装置、设备以及存储介质 | |
CN109753505B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |