【技术实现步骤摘要】
一种基于AC自动机的SQL注入检测方法、设备、存储介质
[0001]本申请涉及数据安全领域,尤其涉及一种基于AC自动机的SQL注入检测方法、设备、存储介质。
技术介绍
[0002]随着社会各行业的数字化、互联网的普及和云计算的发展,除了各大互联网公司,许多传统企业、政府机构也在推广“互联网+”,以跟随时代发展,提升办公效率。但这也带来了一些安全隐患。随着网络应用的增长,服务器中存储的个人、公司、政府机构隐私信息越来越多,若数据库遭遇攻击,将会带来非常严重的损失。
[0003]结构化查询语言(Structured Query Language,SQL)注入攻击是一种常见的数据库攻击方式,攻击者通过利用网站的交互功能,在通信时传入能够操纵数据库的文本,达到恶意泄露数据库信息甚至取得数据库控制权限的目的。目前防范SQL注入攻击的方法主要有两种,第一种方式是建立攻击代码模板库,并用正则表达式进行内容匹配;第二种方式是在后端操作数据库时,使用SQL预编译功能,防止字符串拼接。但这两种方式均存在不同的弱点,首先SQL注入方式较多 ...
【技术保护点】
【技术特征摘要】
1.一种基于AC自动机的SQL注入检测方法,其特征在于,包括:获取后端SQL数据库中的所有关键字集合,作为第一字符串集合;获取过去已知SQL注入攻击字符串集合,作为第二字符串集合;对所述第一字符串集合和所述第二字符串集合进行风险打分;结合所述第一字符串集合和所述第二字符串集合,生成第三字符串集合,根据所述第三字符串集合建立字典树;根据广度优先搜索对所述字典树进行前缀指针计算,构造AC自动机;根据所述AC自动机对接收的输入文档进行风险打分,根据所述打分结果判断是否执行拦截命令。2.根据权利要求1所述的方法,其特征在于,根据所述AC自动机对接收的输入数据进行风险打分,根据所述打分结果判断是否执行拦截命令,具体包括:所述输入数据包括输入参数、输入文档;将系统中接收的服务请求中包含的所有所述输入参数或所述输入文档进行风险打分,判断所述风险打分是否超过预设阈值;若是,确定所述输入数据为风险输入,并对该服务请求执行告警或拦截操作。3.根据权利要求1所述的方法,其特征在于,所述字典树的根节点不包含字符,除所述根节点外的每个节点都只包含一个字符;其中,从所述根节点到某一结点路径上经过的字符连接起来,为该节点对应的字符串;每个节点的所有子节点包含的字符都不相同。4.根据权利要求1所述的方法,其特征在于,在所述字典树建立时,所述方法还包括:判断字符串的节点是否为终节点,若是,将所述字符串的风险分值存储在所述终节点中,作为该字符串的权重。5.根据权利要求1所述的方法,其特征在于,所述根据广度优先搜索对所述字典树进行前缀指针计算,具体包括:在所述字典树的基础上,构造fail指针,以使在字典树的某个节点匹配失败后,直接跳转到最佳匹配节点继续匹配。6.根据权利要求1所述的方法,其特征在于,所述第二字符串集合获得的风险分值高于所述第一字符串集合获得的风险分值。7.根据权利要求...
【专利技术属性】
技术研发人员:赵航,申传旺,罗森,罗超,李照川,
申请(专利权)人:浪潮卓数大数据产业发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。