买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:一种LinuxC中shell防注入的方法,包括如下步骤:构建一个实现exec函数族运行命令的封装库,该封装库对外主要提供四个接口:secure_exec主要通过定义一个结构体数组SECURE_EXEC_PROCESS_T来运行一组命令,这一组命令形成一个连通的管道,其中的每个命令都是单独fork一个进程并在子进程中通过execvp函数运行,secure_exec按照结构体数组的顺序将前一个进程的标准输出作为后一个进程的标准输入,或指定文件描述符通过pipe+dup2函数连接;secure_system和secure_popen以字符串表示的命令和参数列表转化为SECURE_EXEC_PROCESS_T结构体数组,然后调用secure_exec函数运行命令;secure_pclose用于释放secure_popen函数创建的资源。本发明使得命令可完全绕开shell的方式执行,并提供管道、重定向、逻辑运算符、后台运行等常用特性的支持,起到防注入的功能。
主权项:1.一种LinuxC中shell防注入的方法,其特征在于,包括如下步骤:S1、构建一个实现exec函数族运行命令的封装库,该封装库对外提供的接口包括:secure_exec:该函数通过定义一个结构体数组SECURE_EXEC_PROCESS_T来运行一组命令,这一组命令形成一个连通的管道,命令组中的每个命令都是单独fork一个进程并在子进程中通过execvp函数运行,secure_exec按照结构体数组的顺序将前一个进程的标准输出作为后一个进程的标准输入,或指定文件描述符通过pipe+dup2函数连接,实现类似于shell管道和重定向的功能;secure_exec函数最终会返回管道中最后一个进程的pid和可选的传出与管道中第一个进程标准输入绑定的文件描述符;secure_system:该函数支持管道、重定向、逻辑运算符和后台执行,同时支持以格式化字符串+可变参数的方式传入参数列表;该函数将以字符串表示的命令和参数列表转化为SECURE_EXEC_PROCESS_T结构体数组,然后调用secure_exec函数运行命令,等待管道中最后一个进程执行结束后返回它的进程退出状态;secure_popen:该函数支持管道、重定向、逻辑运算符,同时支持以格式化字符串+可变参数的方式传入参数列表;该函数将以字符串表示的命令和参数列表转化为SECURE_EXEC_PROCESS_T结构体数组,然后调用secure_exec函数运行命令,返回一个结构体,该结构体中包含一个可读的文件指针和执行命令的子进程的pid,所述文件指针用于读取命令输出的数据;secure_pclose:该函数用于释放secure_popen函数创建的资源,等待secure_popen执行的命令结束并返回进程退出状态;S2、当有命令传入时,secure_system和secure_popen分别以格式化字符串的形式传入命令,将格式化字符需要的参数通过可变参数列表传入,command参数描述了哪些是命令本身,哪些是命令需要的参数,参数列表中的参数最终都被命令视为普通参数,不会保留有任何特殊含义,需要保留特殊含义的字符写在command命令参数中,确保动态传入的参数不会变成一条新的命令执行;secure_system和secure_popen分别将传入的命令解析成SECURE_EXEC_PROCESS_T结构体数组后,再通过secure_exec函数执行命令;命令执行完成后,secure_system等待管道中最后一个进程执行结束后返回其终止状态,secure_pclose等待secure_popen创建的进程结束并返回其终止状态。
全文数据:
权利要求:
百度查询: 上海贝锐信息科技股份有限公司 一种Linux C中shell防注入的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。