1.一种SQL注入漏洞的检测方法,包括:
接收用户请求,对所述用户请求进行基于词法分析和语法分析的语义分析;
在所述语义分析过程中进行目标特征提取的操作;
检测所述用户请求对应的响应页面,若所述响应页面中包含有与所述目标特征对应的响应特征,则确认存在SQL注入漏洞,其中,所述响应特征与所述目标特征逻辑关联。
2.根据权利要求1所述的方法,所述对所述用户请求进行基于词法分析和语法分析的语义分析,包括:
根据预置的词组规则中的词法分割符,将所述用户请求中的内容分割为多个代码块;
将每个代码块分别与所述词组规则中定义的词组进行匹配,以查找特定的词组。
3.根据权利要求2所述的方法,所述在所述语义分析过程中进行目标特征提取的操作,包括:
将所述特定的词组分别与预设的目标特征库中的特征进行匹配,提取所述特定的词组中与所述目标特征库匹配成功的词组,并将其作为所述目标特征。
4.根据权利要求1至3任一项所述的方法,所述目标特征包括数学表达式、运算函数和/或逻辑表达式。
5.根据权利要求1至4任一项所述的方法,所述检测所述用户请求对应的响应页面,具体包括:
对目标特征进行运算,得到运算结果;判断响应页面是否包含所述运算结果,如果包含则认为响应页面中包含有与所述目标特征对应的响应特征。
6.根据权利要求5所述的方法,所述判断响应页面是否包含所述运算结果,包括:
解析所述响应页面,将解析后的数据与所述运算结果进行匹配。
7.根据权利要求1至6任一项所述的方法,所述接收用户请求之前,还包括:创建目标特征库,用于存储在SQL注入漏洞的用户请求中的数学表达式、运算函数和/或逻辑表达式。
8.一种SQL注入漏洞的检测装置,包括:
分析模块,用于接收用户请求,对所述用户请求进行基于词法分析和语法分析的语义分析;
提取模块,用于在所述分析模块进行语义分析过程中进行目标特征提取的操作;
检测模块,用于检测所述用户请求对应的响应页面,若所述响应页面中包含有与所述提取模块提取的目标特征对应的响应特征,则确认存在SQL注入漏洞,其中,所述响应特征与所述目标特征逻辑关联。
9.根据权利要求8所述的装置,所述分析模块,包括:
分割单元,用于根据预置的词组规则中的词法分割符,将所述用户请求中的内容分割为多个代码块;
匹配单元,用于将每个代码块分别与所述词组规则中定义的词组进行匹配,以查找特定的词组。
10.根据权利要求9所述的装置,所述提取模块,具体用于将所述特定的词组分别与预设的目标特征库中的特征进行匹配,提取所述特定的词组中与所述目标特征库匹配成功的词组,并将其作为所述目标特征。