1.一种安全测试方法,所述方法包括:
接收当前网络访问请求,所述当前网络访问请求携带有统一资源定位符以及访问参数;
根据所述统一资源定位符获取所述当前网络访问请求对应的当前代码;
在所述当前代码中插入探针函数;
在根据所述访问参数执行所述当前代码的过程中,通过所述探针函数记录所述当前代码中代码语句的执行顺序,得到所述当前代码的执行路径;
检测所述当前代码的执行路径与预设路径是否一致;
若所述执行路径与预设路径不一致,确定所述当前代码存在安全漏洞;
其中,所述访问参数为用户在所述当前网络访问请求对应的当前网络页面输入的,当所述当前网络页面上预设的选项参数不包括所述访问参数时,则执行所述在所述当前代码中插入探针函数的步骤,所述当前网络页面上预设的选项参数为在所述当前网络页面上进行选择的参数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述当前网络访问请求对应的当前网络页面;
将所述访问参数与所述当前网络页面上预设的选项参数进行对比,确定所述选项参数与所述访问参数的包含关系。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述当前代码对应的多个历史网络访问请求的历史执行路径;
计算所述历史执行路径的分布比例,将超过预设分布比例的历史执行路径作为所述预设路径。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:获取所述当前代码的代码特征,所述代码特征包括所述当前代码对应的变量约束条件;
根据所述变量约束条件构造测试参数;
根据所述测试参数执行所述当前代码,得到代码运行数据;
根据所述代码运行数据确定所述当前代码对应的漏洞检测结果。
5.根据权利要求4所述的方法,其特征在于,所述代码特征还包括所述当前代码对应的功能控件,所述根据所述测试参数执行所述当前代码,得到代码运行数据的步骤包括:根据所述功能控件以及所述测试参数构造测试网络访问请求;
根据所述测试网络访问请求执行所述当前代码,得到代码运行数据。
6.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:若确定所述当前代码存在漏洞,丢弃所述当前网络访问请求。
7.根据权利要求1至3任意一项所述的方法,其特征在于,所述在所述当前代码中插入探针函数的步骤包括:对所述当前代码进行检测,得到所述当前代码的目标语句,所述目标语句包括以下代码语句中的至少一个:当前代码的起始语句、终止语句、判断语句、变量约束条件对应的语句以及访问参数对应的代码语句;
在所述当前代码的目标语句上插入探针函数。
8.一种安全测试装置,所述装置包括:
请求接收模块,用于接收当前网络访问请求,所述当前网络访问请求携带有统一资源定位符以及访问参数;
代码获取模块,用于根据所述统一资源定位符获取所述当前网络访问请求对应的当前代码;
探针插入模块,用于在所述当前代码中插入探针函数;
执行路径得到模块,用于在根据所述访问参数执行所述当前代码的过程中,通过所述探针函数记录所述当前代码中代码语句的执行顺序,得到所述当前代码的执行路径;
检测模块,用于检测所述当前代码的执行路径与预设路径是否一致;
漏洞确定模块,用于若所述执行路径与预设路径不一致,确定所述当前代码存在安全漏洞;
其中,所述访问参数为用户在所述当前网络访问请求对应的当前网络页面输入的,当所述当前网络页面上预设的选项参数不包括所述访问参数时,则执行所述在所述当前代码中插入探针函数的步骤,所述当前网络页面上预设的选项参数为在所述当前网络页面上进行选择的参数。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。