一种语句预处理方法、装置以及语句的解释方法、装置的制造方法

文档序号:9432970阅读:202来源:国知局
一种语句预处理方法、装置以及语句的解释方法、装置的制造方法
【技术领域】
[0001]本发明涉及数据处理技术领域,尤其涉及一种语句预处理方法、装置以及解释方法、装置。
【背景技术】
[0002]目前,“注入”和“溢出”问题是黑客攻击计算机的主要手段。
[0003]“注入”:
[0004]随着B/S模式应用开发的发展,使用该模式编写程序的程序员越来越来越多,但是由于程序员的水平参差不齐,相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要知的数据,这个就是所谓的SQLinject1n,即sql “注入”式攻击。
[0005]脚本“注入”攻击者把SQL (Structured Query Language,结构化查询语言)命令插入到WEB表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,在某些表单中,用户输入的内容直接用来构造动态的SQL命令,或作为存储过程的输入参数,从而获取想得到的密码或其它服务器上的资料。
[0006]“溢出”:
[0007]缓冲区“溢出”是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量“溢出”的数据覆盖在合法数据上,理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区“溢出”埋下隐患。操作系统所使用的缓冲区又被称为“堆栈”。在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区“溢出”。
[0008]在黑客频频攻击、在系统漏洞层出不穷的今天,网络管理员、系统管理员虽然在服务器的安全上都下了不少功夫:诸如,及时的打上系统安全补丁、进行一些常规的安全配置,但是仍然不太可能每台服务器都会在第一时间内给系统打上全新补丁。
[0009]所以迫切本领域技术人员解决的技术问题就在于,如何降低“注入”、“溢出”被黑客利用的可能性。

【发明内容】

[0010]本发明的实施例提供了一种语句预处理方法、装置以及解释方法、装置,通过将不同的语句类型的按照不同的方式进行修改,实现不同语句类型的编码异构,降低“注入”、“溢出”被黑客利用的可能性。
[0011 ] 为了实现上述目的,本发明采取了如下技术方案。
[0012]—种语句预处理方法,包括:
[0013]确定待执行语句;所述语句包括数据或者代码,所述数据包括外界输入的数据;包括数据的所述语句的语句类型为数据类,包括代码的所述语句的语句类型为代码类;
[0014]根据所述待执行语句的语句类型对应的预制专用修改规则,对所述待执行语句进行修改;
[0015]将修改后的语句转给解释装置;以便所述解释装置根据预制的解释规则进行解释。
[0016]可选的,所述根据所述待执行语句的语句类型对应的预制专用修改规则进行修改包括:
[0017]确定所述待执行语句的语句类型对应的专用间隔字符;
[0018]将所述专用间隔字符插入到所述待执行语句的预设位置处。
[0019]可选的,所述根据所述待执行语句的语句类型对应的预制专用修改规则进行修改包括:
[0020]确定所述待执行语句的语句类型对应的专用字符集;
[0021 ] 根据所述专用字符集将所述待执行语句进行转换。
[0022]可选的,所述专用字符集包括:
[0023]通过数码类型来区分所述待执行语句的语句类型;通过所述数码的个数来区分不同的语句。
[0024]—种语句预处理装置,包括:
[0025]待执行语句确定单元,用于确定待执行语句;所述语句包括数据或者代码,所述数据包括外界输入的数据;包括数据的所述语句的语句类型为数据类,包括代码的所述语句的语句类型为代码类;
[0026]待执行语句修改单元,用于根据所述待执行语句的语句类型对应的预制专用修改规则,对所述待执行语句进行修改;
[0027]待执行语句传输单元,用于将修改后的语句转给解释装置;以便所述解释装置根据预制的解释规则进行解释。
[0028]可选的,所述待执行语句修改单元包括:
[0029]专用间隔字符确定子单元,用于确定所述待执行语句的语句类型对应的专用间隔字符;
[0030]专用间隔字符插入子单元,用于将所述专用间隔字符插入到所述待执行语句的预设位置处。
[0031]可选的,所述待执行语句修改单元包括:
[0032]专用数据字符集确定子单元,用于确定所述待执行语句的语句类型对应的专用字符集;
[0033]转换子单元,用于根据所述专用字符集将所述待执行语句进行转换。
[0034]—种语句的解释方法,包括:
[0035]确定经过预处理的语句;所述语句包括数据或者代码,所述数据包括外界输入的数据;包括数据的所述语句的语句类型为数据类,包括代码的所述语句的语句类型为代码类;所述语句类型对应有专用修改规则;
[0036]判断所述经过预处理的语句所包含的专用修改规则;根据所述专用修改规则确定所述经过预处理的语句的语句类型;
[0037]根据所述经过预处理的语句的语句类型对应的预制解释规则对所述语句进行解释。
[0038]可选的,所述判断所述经过预处理的语句所包含的专用修改规则;根据所述专用修改规则确定所述经过预处理的语句的语句类型,包括:
[0039]判断所述经过预处理的语句的预设位置包含的专用间隔字符;
[0040]根据所述专用间隔字符确定所述经过预处理的语句的语句类型。
[0041]可选的,所述判断所述经过预处理的语句所包含的专用修改规则;根据所述专用修改规则确定所述经过预处理的语句的语句类型,包括:
[0042]判断所述经过预处理的语句包含的字符所属的字符集;
[0043]根据所述数字符集确定所述经过预处理的语句的语句类型。
[0044]可选的,所述根据所述数字符集确定所述经过预处理的语句的语句类型包括:
[0045]判断所述字符集的数码,确定所述数码对应的语句类型为所述经过预处理的语句的语句类型。
[0046]可选的,所述方法还包括:
[0047]将所述经过预处理的语句还原为原始语句。
[0048]可选的,所述代码包括程序指针,所述程序指针指向所述数据的存储空间,所述方法还包括:
[0049]建立程序指针与所述程序指针指向的数据空间的对应标记;
[0050]当所述程序指针指向的数据空间的数据被释放时,将所述数据空间标记为锁定;其中,所述标记为锁定的数据空间中的数据不可再次写入。
[0051 ] 可选的,所述方法还包括:
[0052]当所述程序指针被释放时,检查所述程序指针所指向的数据空间是否没有指针指向该数据空间,且该数据空间标记为锁定;
[0053]若是,将所述程序指针指向的数据空间标记为可写入。
[0054]—种语句的解释装置,包括:
[0055]语句确定单元,用于确定经过预处理的语句;所述语句包括数据或者代码,所述数据包括外界输入的数据;包括数据的所述语句的语句类型为数据类,包括代码的所述语句的语句类型为代码类;所述语句类型对应有专用修改规则;
[0056]语句类型判断单元,用于判断所述经过预处理的语句所包含的专用修改规则;根据所述专用修改规则确定所述经过预处理的语句的语句类型;
[0057]解释单元,用于根据所述经过预处理的语句的语句类型对应的预制解释规则对所述语句进行解释。
[0058]可选的,所述语句类型判断单元包括:
[0059]专用间隔字符判断子单元,用于判断所述经过预处理的语句的预设位置包含的专用间隔字符;
[0060]第一语句类型确定子单元,用于根据所述专用间隔字符确定所述经过预处理的语句的语句类型。
[0061]可选的,所述语句类型判断单元包括:
[0062]字符集判断子单元,用于判断所述经过预处理的语句包含的字符所属的字符集;
[0063]第二语句类型确定子单元,用于根据所述数字符集确定所述经过预处理的语句的语句类型。
[0064]可选的,所述第二语句类型确定子单元,还用于:
[0065]判断所述字符集的数码,确定所述数码对应的语句类型为所述经过预处理的语句的语句类型。
[0066]可选的,所述装置还包括:
[0067]语句还原单元,用于将所述经过预处理的语句还原为原始语句。
[0068]可选的,所述代码包括程序指针,所述程序指针指向所述数据的存储空间,所述装置还包括:
[0069]数据空间标记单元,用于,
[0070]建立程序指针与所述程序指针指向的数据空间的对应标记;
[0071]当所述程序指针指向的数据空间的数据被释放时,将所述数据空间标记为锁定;其中,所述标记为锁定的数据空间中的数据不可再次写入;
[0072]或者,
[0073]当所述程序指针被释放时,检查所述程序指针所指向的数据空间是否没有指针指向该数据空间,且该数据空间标记为锁定;
[0074]若是,将所述程序指针指向的数据空间标记为可写入
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1