CN109255253A - Sql防注入方法及装置 - Google Patents

Sql防注入方法及装置 Download PDF

Info

Publication number
CN109255253A
CN109255253A CN201810916092.6A CN201810916092A CN109255253A CN 109255253 A CN109255253 A CN 109255253A CN 201810916092 A CN201810916092 A CN 201810916092A CN 109255253 A CN109255253 A CN 109255253A
Authority
CN
China
Prior art keywords
sql
data
query
checked
converted
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
Application number
CN201810916092.6A
Other languages
English (en)
Inventor
朱正宝
陈俊
高帆
傅政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Keda Technology Co Ltd
Original Assignee
Suzhou Keda Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Keda Technology Co Ltd filed Critical Suzhou Keda Technology Co Ltd
Priority to CN201810916092.6A priority Critical patent/CN109255253A/zh
Publication of CN109255253A publication Critical patent/CN109255253A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种SQL防注入方法、装置、电子设备及计算机可读存储介质,其中SQL防注入方法包括:包括:接收用户输入的待查询对象;将待查询对象按照预设转码方式转换为对应的可查询对象;获取用于查询可查询对象的SQL查询语句;在数据库中执行SQL查询语句以查询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。通过对数据库的数据加密,用户输入SQL语句也采用与数据库相同的加密方式进行加密,从而查询加密后的数据库,能够简单有效地防范SQL注入攻击。

Description

SQL防注入方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种SQL防注入方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,我们身边的各种软件也已经越来越多了起来,各种玲琅满目的网站、app等等,这些都使用了数据库技术来存储数据,随之而来的也有越来越大的风险,其中在数据库使用上SQL(Structured Query Language,结构化查询语言)注入一直是一个需要重点防范的方面。一旦软件能够被SQL注入,那么将面临极大的风险,可能是数据库内容的泄漏,可能是数据库内容被恶意篡改,甚至连数据库被删除都有可能发生。
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。从SQL注入的本质来看,就是用户输入的数据,在拼接SQL语句的过程中,超越了数据本身,成为了SQL语句查询逻辑的一部分,然后这样被拼接出来的SQL语句被数据库执行,产生了开发者预期之外的动作。
对于SQL注入攻击的防范,常用的第一种方法是输入数据过滤。但是输入数据过滤中对“安全字符”的界定非常困难。所以是不完全解决方法;第二种是屏蔽数据库服务器出错信息,属于攻击实施之后的补救措施,对于绕过用户登录信息验证的攻击无效;第三种是在对用户输入数据实施过滤的基础上,利用一层或多层IDS(Intrusion DetectionSystems,入侵检测系统)特征匹配来系统性的阻止SQL注入攻击。这需要在相应服务器的IDS 中设置SQL注入攻击的特征库,对于本身没有安装IDS的系统不可行。第四种Instruction-Set Randomization(指令集随机化)是利用一个随机化模块将用户传递给数据库服务器的指令集添加一个随机数后缀,再通过一个中间服务器过滤感染的指令集,只把健康的指令集传给数据库服务器,这种方法的自身缺点是无法避免IIS Cross-SiteScripting(交叉注入脚本)攻击,而且布置比较困难。
发明内容
有鉴于此,本发明实施例提供了一种SQL防注入方法、装置、电子设备及计算机可读存储介质,以解决现有技术中不能对SQL注入攻击进行有效防范的问题。
本发明第一方面,提供一种SQL防注入方法,包括:接收用户输入的待查询对象;将待查询对象按照预设转码方式转换为对应的可查询对象;获取用于查询可查询对象的SQL查询语句;在数据库中执行SQL查询语句以查询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。
可选地,将待查询对象按照预设转码方式转换为对应的可查询对象包括:对待查询对象进行多次转码,得到可查询对象。
可选地,对待查询对象进行多次转码,得到可查询对象包括:将待查询对象进行二进制转换得到二进制数据;将二进制数据分为多组数据,并对多组数据进行十进制转换得到多个十进制数据;在预设的字符集中查找与多个十进制数据对应的字符,组成可查询对象。
可选地,预设的字符集包括16个十进制数和字符以及十进制数与字符的对应关系,16个十进制数包括0到15;将待查询对象进行二进制转换得到二进制数据包括:将待查询对象中每个字符转换成二进制的ASCII码;将二进制数据分为多组数据,并对多组数据进行十进制转换得到多个十进制数据包括:将转换后得到的ASCII码拆解成多个4位二进制数,将每个4 位二进制数转换成十进制数。
可选地,在数据库中执行SQL查询语句以查询可查询对象之后,还包括:将查询到的可查询对象对应的数据按照预设转码方式转化为对应的数据。
本发明第二方面,提供了一种SQL防注入装置,包括接收模块,第一转换模块,获取模块和执行模块,其中:
接收模块用于接收用户输入的待查询对象;第一转换模块用于将待查询对象按照预设转码方式转换为对应的可查询对象;获取模块用于获取用于查询可查询对象的SQL查询语句;执行模块用于在数据库中执行SQL查询语句以询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。
可选地,第一转换模块还用于对待查询对象进行多次转码,得到可查询对象。
可选地,第一转换模块还包括:
第一转换单元,用于将待查询对象进行二进制转换得到二进制数据;
分组单元,用于将二进制数据分为多组数据;
第二转换单元,用于对多组数据进行十进制转换得到多个十进制数据;
查找单元,用于在预设的字符集中查找与多个十进制数据对应的字符,组成可查询对象。
可选地,第一转换模块还包括:预设的字符集包括16个十进制数和字符以及十进制数与字符的对应关系,16个十进制数包括0到15;
第一转换单元还用于将待查询对象中每个字符转换成二进制的ASCII 码;
拆解单元,还用于将转换后得到的ASCII码拆解成多个4位二进制数;
第二转换单元还用于将每个4位二进制数转换成十进制数。
可选地,还包括:第二转换模块,用于将查询到的可查询对象对应的数据按照预设转码方式转化为对应的数据。
本发明第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行本发明第一方面中任一所述的SQL防注入方法。
本发明第四方面,提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现本发明第一方面中任一所述的SQL防注入方法。
本发明实施例技术方案,具有如下优点:
1.本发明实施例提供了一种SQL防注入方法、装置、电子设备及计算机可读存储介质,其中SQL防注入方法包括:接收用户输入的待查询对象;将待查询对象按照预设转码方式转换为对应的可查询对象;获取用于查询可查询对象的SQL查询语句;在数据库中执行SQL查询语句以查询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。通过对数据库的数据加密,用户输入的内容也采用与数据库相同的加密方式进行加密,从而查询加密后的数据库,能够简单有效地防范SQL注入攻击。
2.本发明实施例提供了一种SQL防注入方法及装置,还包括:将待查询对象按照预设转码方式转换为对应的可查询对象包括:对待查询对象进行多次转码,得到可查询对象。通过将待查询对象多次转码,提高SQL查询语句执行时的安全性。
3.本发明实施例提供了一种SQL防注入方法及装置,包括:对待查询对象进行多次转码,得到可查询对象包括:将待查询对象进行二进制转换得到二进制数据;将二进制数据分为多组数据,并对多组数据进行十进制转换得到多个十进制数据;在预设的字符集中查找与多个十进制数据对应的字符,组成可查询对象。通过对数据库的信息进行自定义的加密,得到自定义加密的数据库,相应的在对自定义加密的数据库进行查询时,所有查询字符也都需要经过自定义加密转换为不影响SQL语句正常执行的安全字符,简单有效地实现SQL注入攻击防范效果。
4.本发明实施例提供了一种SQL防注入方法及装置,还包括:预设的字符集包括16个十进制数和字符以及十进制数与字符的对应关系,16个十进制数包括0到15;将待查询对象进行二进制转换得到二进制数据包括:将待查询对象中每个字符转换成二进制的ASCII码;将二进制数据分为多组数据,并对多组数据进行十进制转换得到多个十进制数据包括:将转换后得到的ASCII码拆解成多个4位二进制数,将每个4位二进制数转换成十进制数。通过对数据库的信息进行自定义的加密,得到自定义加密的数据库,相应的在对自定义加密的数据库进行查询时,所有查询字符也都需要经过自定义加密转换为不影响SQL语句正常执行的安全字符,简单有效地实现SQL注入攻击防范效果。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1为本发明实施例中一种SQL防注入方法的流程图;
图2为本发明实施例中一种数据库加密方法的流程图;
图3为本发明实施例中一种用户输入数据加密方法的流程图;
图4为本发明实施例中另一种SQL防注入方法的流程图;
图5为本发明实施例中一种SQL防注入装置的结构示意图;
图6为本发明实施例中一种SQL防注入装置的第一转换模块结构示意图;
图7为本发明实施例中一种SQL防注入终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
表1
表1为数据库中的一张联系人信息表,执行一个正常的联系人信息查询:“Selectcontacts from contacts_info_table where name=Fanny”,查询一个叫Fanny的联系人信息。如果未采取防SQL注入措施,不法分子只要稍微修改一下SQL语句就可能会造成严重的后果,例如执行如下SQL语句:“Select contacts from contacts_info_table wherename=Fanny’;drop table phone--”。这条语句中:Fanny’后面的分号“;”表示一个查询的结束和另一条语句的开始;phone后面的双连字符“--”指示当前行余下的部分只是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码,系统在处理这条语句时,将首先执行查询语句,查到姓名是“Fanny”的联系人信息。然后将删除“phone”一栏的信息,在这种情况下,如果没有其他主键等相关约束,则删除操作就会成功。
为了解决上述问题本发明实施例提供了一种SQL防注入方法,如图1 所示,包括:
步骤S1,接收用户输入的待查询对象。
在本实施例中,如表1所示,待查询对象具体为“Tony”、“Fanny”和“张三”。
步骤S2,将待查询对象按照预设转码方式转换为对应的可查询对象。
在本实施例中,将输入的“Tony”、“Fanny”或“张三”按预设的转码方法进行转换加密,转换成数据库中对应的可查询对象。
步骤S3,获取用于查询可查询对象的SQL查询语句。
在本实施例中,例如可以执行的SQL查询语句为“Select contacts fromcontacts_info_table where name=Fanny”,其中“Fanny”为用户输入的查询对象,实际执行时转换为加密对象。
步骤S4,在数据库中执行SQL查询语句以查询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。具体地,如表1中的数据,采用如图2所示的方法预先对其进行转码加密。
在具体实施方式中,获取数据库中的数据,将数据库中的所有数据都进行二进制转换,转换完成后再进行分组:例如对表1中的数据“Tony”进行二进制转换,参考ASCII码对照表,转换成二进制的ASCII码0101 0100、0110 1111、0110 1110、0111 1001。因为是ASCII字符转换为二进制码,因此得到的二进制码位数都是4的倍数,可以以4位一组转换成十进制数据。再通过预设的安全字符集(参加表2),将十进制数据转换成密文,存入数据库以待用户查询。
在本实施例中,事先对数据库中的数据进行加密,用户在输入SQL语句对数据库中的数据进行查询、得到查询结果之前,数据库中的数据保持加密状态。具体地,可以是数据库内部嵌套加密算法,也可以是中转服务器获取数据库数据进行加密,加密数据储存在中转服务器里,此时中转服务器作为实际被查询的对象。在具体实施例中,如需要查询表1中的数据,若用户是正常查询,那么用户输入的查询字段在经过与数据库同样的加密方式之后,是可以正确地查询到结果的;若是SQL注入攻击,则加密后输入的字段与原本目标字段加密结果是不同的,在加密后的数据库中无法查询到相应的结果,也就无法执行之后的SQL注入攻击语句。通过对数据库的数据加密,用户输入SQL语句也采用与数据库相同的加密方式进行加密,从而查询加密后的数据库,能够简单有效地防范SQL注入攻击。
作为可选的实施方式,步骤S2包括:步骤S21,对待查询对象进行多次转码,得到可查询对象。
在本实施例中,采用多次转码,提高SQL查询语句执行时的安全性。
作为可选的实施方式,步骤S21包括:
步骤S211,将待查询对象进行二进制转换得到二进制数据。
步骤S212,将二进制数据分为多组数据,并对多组数据进行十进制转换得到多个十进制数据。
步骤S213,在预设的字符集中查找与多个十进制数据对应的字符,组成可查询对象。
作为可选的实施方式,所述预设的字符集包括16个十进制数和字符以及十进制数与字符的对应关系,16个十进制数包括0到15;
步骤S211包括:将待查询对象中每个字符转换成二进制的ASCII码。
在本实施例中,对用户输入的数据“Tony”进行二进制转换,转换成二进制ASCII码0101 0100、0110 1111、0110 1110、0111 1001。
步骤S212包括:将转换后得到的ASCII码拆解成多个4位二进制数,将每个4位二进制数转换成十进制数。
在本实施例中,例如二进制码0101,转换为十进制数为5。
在本实施例中,4个二进制数的值范围为0~15,因此预设字符集设置 16个数即可。
表2
码值 码值 码值 码值
0 Q 4 T 8 O 12 D
1 W 5 Y 9 P 13 F
2 E 6 U 10 A 14 G
3 R 7 I 11 S 15 H
表3
name gender age phone
YTUHUGIP GIPTSI RERY RWRRRORI
TUUWUGUGIP GYAYSR RERO RWRERURY
GYSDAQGTSOOP GIPTSI RERY RWRPRYRT
在具体实施例中,如表1至表3所示,表2为自定义安全字符集,表3 为表1采用表2安全字符集进行加密得到的联系人信息密文表,具体地,先将查询字符转换成二进制的ASCII码,例如对“Tony”进行加密:对用户输入的数据“Tony”进行加密,先将“Tony”转换成二进制ASCII码0101 0100、0110 1111、0110 1110、0111 1001;再将这些二进制码每4位分为一组,即0101、0100、0110、1111、0110、1110、0111、1001,由二进制换算到十进制,得到对应的十进制数据为5、4、6、15、6、14、7、9,一一对应到表2中的安全字符,转换成Y、T、U、H、U、G、I、P。也可以根据需要转换成八进制或十六进制;自定义的安全字符集只要不包含SQL语句中的一些特殊字符即可,例如单引号、括号等,如前述无加密查询的例子所示,这些特殊字符是可以对数据库进行注入攻击的,因此在定义安全字符集时尽量避免设置这些特殊字符。具体实施流程如图2所示。
在本实施例中,通过对数据库的信息进行自定义的加密,得到自定义加密的数据库,相应的在对自定义加密的数据库进行查询时,所有查询字符也都需要经过自定义加密转换为不影响SQL语句正常执行的安全字符,简单有效地实现SQL注入攻击防范效果。
在本实施例中,具体流程如图4所示。用户在对经过加密的联系人信息表进行查询时,正常查询输入的是加密前的信息,例如用户输入的数据是“Fanny”,而SQL查询语句执行前,“Fanny”经过二进制ASCII码转换得到一串二进制数据,这串二进制数据再经过十进制转换得到一串十进制数据,最后通过表2中安全字符集的转换加密处理,最终执行SQL查询语句“Select contacts fro-m contacts_info_table where name=TUUWUGUGI P”,就可以正常查询到联系人Fanny的信息,查询到的结果如表3所示。S QL注入的来源在于用户输入的数据部分,因此在本实施方式中,仅对用户输入的数据进行了加密转换。
若用户恶意输入“Fanny’;drop table phone--”进行查询,执行SQL 语句前先对输入数据进行加密,加密后的数据为“TUUWUGUGIPEIRSUTI EUHIQEQITUWUEUDUYEQIQUOUPUGUYEQEFEF”,此时,实际执行的 SQL查询语句是“Select contacts from contacts_info_table where name= TUUWUGUGIPEIRSUTIEUHIQEQITUWUEUDUYEQIQUOUPUGUYEQEF EF”,在表3数据库中无法查询到相应的数据,也就无法继续执行注入的攻击语句,这样就可以避免用户信息被删除串改,成功的防止用户输入数据被当成SQL代码执行而造成严重后果,成功的阻止了SQL注入攻击。本实施例中提出的对用户输入的数据进行加密转换,以及对数据库中数据进行加密转换,可以简单有效地防范SQL注入攻击。
作为可选的实施方式,在步骤S4之后,还包括:将查询到的可查询对象对应的数据按照预设转码方式转化为对应的数据。
在本实施例中,用户输入正常的数据进行SQL查询,由于是在如表3 所示的数据库中进行查询,得到的查询结果也是加密状态的,因此在向用户展示查询结果前,对加密状态的查询结果进行逆向解密。
若用户输入的是SQL注入攻击语句或错误的数据,此时SQL语句执行失败,则向用户发送未获得结果的提示信息即可。
用户不需要对查询到的加密数据进行自行解密,整个查询过程中,用户也无法获取数据加密的方式及加密密钥,进一步保障了数据库的安全性。
在本实施例中还提供一种SQL防注入装置,该装置用于实现上述实施例及可选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图5、图6所示,是本发明实施例的SQL防注入装置结构示意图,提供了一种SQL防注入装置,包括接收模块1,第一转换模块2,获取模块 3和执行模块4,其中:
接收模块1用于接收用户输入的待查询对象;第一转换模块2用于将待查询对象按照预设转码方式转换为对应的可查询对象;获取模块3用于获取用于查询可查询对象的SQL查询语句;执行模块4用于在数据库中执行SQL查询语句以询可查询对象,其中,数据库中的数据为按照预设转码方式转码后的数据。
作为可选的实施方式,第一转换模块2还用于对待查询对象进行多次转码,得到可查询对象。
作为可选的实施方式,第一转换模块2还包括:
第一转换单元21,用于将待查询对象进行二进制转换得到二进制数据;
分组单元22,用于将二进制数据分为多组数据;
第二转换单元23,用于对多组数据进行十进制转换得到多个十进制数据;
查找单元24,用于在预设的字符集中查找与多个十进制数据对应的字符,组成可查询对象。
作为可选的实施方式,第一转换模块2还包括:预设的字符集包括16 个十进制数和字符以及十进制数与字符的对应关系,16个十进制数包括0 到15;
第一转换单元21还用于将待查询对象中每个字符转换成二进制的 ASCII码;
拆解单元25,还用于将转换后得到的ASCII码拆解成多个4位二进制数;
第二转换单元23还用于将每个4位二进制数转换成十进制数。
作为可选的实施方式,还包括:第二转换模块5,用于将查询到的可查询对象对应的数据按照预设转码方式转化为对应的数据。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供了一种SQL防注入终端,如图7所示,该SQL防注入终端可以包括处理器701和存储器702,其中处理器701和存储器702 可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器701可以为中央处理器(Central Processing Unit,CPU)。处理器701还可以为其他通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器702作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的SQL 防注入装置加密方法对应的程序指令/模块(例如,图5所示的第一获取模块11、第一加密模块12和第二获取模块13。处理器701通过运行存储在存储器702中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的SQL防注入方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器701所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至处理器 701。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器702中,当被所述处理器701 执行时,执行如图1所示实施例中的SQL防注入方法。
上述SQL防注入终端具体细节可以对应参阅图1至图4所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种SQL防注入方法,其特征在于,包括:
接收用户输入的待查询对象;
将所述待查询对象按照预设转码方式转换为对应的可查询对象;
获取用于查询所述可查询对象的SQL查询语句;
在数据库中执行所述SQL查询语句以查询所述可查询对象,其中,所述数据库中的数据为按照所述预设转码方式转码后的数据。
2.根据权利要求1所述的SQL防注入方法,其特征在于,将所述待查询对象按照预设转码方式转换为对应的可查询对象包括:
对所述待查询对象进行多次转码,得到所述可查询对象。
3.根据权利要求2所述的SQL防注入方法,其特征在于,对所述待查询对象进行多次转码,得到所述可查询对象包括:
将所述待查询对象进行二进制转换得到二进制数据;
将所述二进制数据分为多组数据,并对所述多组数据进行十进制转换得到多个十进制数据;
在预设的字符集中查找与所述多个十进制数据对应的字符,组成所述可查询对象。
4.根据权利要求2所述的SQL防注入方法,其特征在于,所述预设的字符集包括16个十进制数和字符以及十进制数与字符的对应关系,所述16个十进制数包括0到15;
将所述待查询对象进行二进制转换得到二进制数据包括:将所述待查询对象中每个字符转换成二进制的ASCII码;
将所述二进制数据分为多组数据,并对所述多组数据进行十进制转换得到多个十进制数据包括:将转换后得到的ASCII码拆解成多个4位二进制数,将每个4位二进制数转换成十进制数。
5.根据权利要求1至4中任一所述的SQL防注入方法,其特征在于,在数据库中执行所述SQL查询语句以查询所述可查询对象之后,还包括:
将查询到的所述可查询对象对应的数据按照所述预设转码方式转化为对应的数据。
6.一种SQL防注入装置,其特征在于,包括:
接收模块,用于接收用户输入的待查询对象;
第一转换模块,用于将所述待查询对象按照预设转码方式转换为对应的可查询对象;
获取模块,用于获取用于查询所述可查询对象的SQL查询语句;
执行模块,用于在数据库中执行所述SQL查询语句以查询所述可查询对象,其中,所述数据库中的数据为按照所述预设转码方式转码后的数据。
7.根据权利要求6所述的SQL防注入装置,其特征在于,所述第一转换模块还用于对所述待查询对象进行多次转码,得到所述可查询对象。
8.根据权利要求7所述的SQL防注入装置,其特征在于,所述第一转换模块还包括:
第一转换单元,用于将所述待查询对象进行二进制转换得到二进制数据;
分组单元,用于将所述二进制数据分为多组数据;
第二转换单元,用于对所述多组数据进行十进制转换得到多个十进制数据;
查找单元,用于在预设的字符集中查找与所述多个十进制数据对应的字符,组成所述可查询对象。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述权利要求1-5中任一所述的SQL防注入方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现上述权利要求1-5中任一所述的SQL防注入方法。
CN201810916092.6A 2018-08-13 2018-08-13 Sql防注入方法及装置 Pending CN109255253A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810916092.6A CN109255253A (zh) 2018-08-13 2018-08-13 Sql防注入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810916092.6A CN109255253A (zh) 2018-08-13 2018-08-13 Sql防注入方法及装置

Publications (1)

Publication Number Publication Date
CN109255253A true CN109255253A (zh) 2019-01-22

Family

ID=65050085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810916092.6A Pending CN109255253A (zh) 2018-08-13 2018-08-13 Sql防注入方法及装置

Country Status (1)

Country Link
CN (1) CN109255253A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110210251A (zh) * 2019-06-17 2019-09-06 阿里巴巴集团控股有限公司 数据查询方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217537A (zh) * 2007-12-28 2008-07-09 董韶瑜 一种网络攻击的防范方法
US20150156209A1 (en) * 2013-12-04 2015-06-04 Karen Heart Process Using Universal Sanitization to Prevent Injection Attacks
CN106503557A (zh) * 2016-07-08 2017-03-15 耿童童 基于动态变换的sql注入攻击防御系统及防御方法
CN107370725A (zh) * 2017-06-21 2017-11-21 西安电子科技大学 一种云环境下通用加密数据库的存取方法及系统
CN107682373A (zh) * 2017-11-21 2018-02-09 中国电子科技集团公司第五十四研究所 一种基于sql异构化的sql注入防御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217537A (zh) * 2007-12-28 2008-07-09 董韶瑜 一种网络攻击的防范方法
US20150156209A1 (en) * 2013-12-04 2015-06-04 Karen Heart Process Using Universal Sanitization to Prevent Injection Attacks
CN106503557A (zh) * 2016-07-08 2017-03-15 耿童童 基于动态变换的sql注入攻击防御系统及防御方法
CN107370725A (zh) * 2017-06-21 2017-11-21 西安电子科技大学 一种云环境下通用加密数据库的存取方法及系统
CN107682373A (zh) * 2017-11-21 2018-02-09 中国电子科技集团公司第五十四研究所 一种基于sql异构化的sql注入防御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110210251A (zh) * 2019-06-17 2019-09-06 阿里巴巴集团控股有限公司 数据查询方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10268840B2 (en) Systems and methods of determining compromised identity information
US10489561B2 (en) Web application protection
US11928245B2 (en) Systems and methods of determining compromised identity information
US10599872B2 (en) Systems and methods of determining compromised identity information
US10284372B2 (en) Method and system for secure management of computer applications
CN103744802B (zh) Sql注入攻击的识别方法及装置
CN117278224A (zh) 用于验证身份属性信息的方法和系统
EP3275115A2 (en) Database server and client for query processing on encrypted data
CN105450730A (zh) 一种处理客户端请求的方法和装置
US9460077B1 (en) Data validation
US10970421B2 (en) Virus immune computer system and method
JP6374947B2 (ja) 回復機能を有し、かつ復元可能な動的装置識別
US20210382985A1 (en) Virus immune computer system and method
US20200242235A1 (en) Virus immune computer system and method
US10592697B1 (en) Virus immune computer system and method
US11055399B2 (en) Data recovery through reversal of hash values using probabilistic data structures
CN111984989B (zh) 一种自身校验发布和访问url的方法、装置、系统和介质
CN109255253A (zh) Sql防注入方法及装置
Akhai et al. Code Injection Assault & Mitigation Model to Prevent Attacks
US20230385451A1 (en) Systems and methods of determining compromised identity information
CN116915454A (zh) Sql注入漏洞检测方法、装置、电子设备及存储介质
Saravanan et al. A SURVEY ON EXPOSED VULNERABILITIES IN WEB PPLICATIONS

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

Application publication date: 20190122

RJ01 Rejection of invention patent application after publication