如何通过Checkmarx修复python代码“args=parser.parse_args()”的“命令注入”问题?

2024-09-27 23:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python代码,它解析输入参数,如下所示:

parser = argparse.ArgumentParser(description='Information injection in file.')  # , usage=usage())
requiredNamed = parser.add_argument_group('...')
requiredNamed.add_argument('--name', action='store', dest='myname', help='...', required=True)
requiredNamed.add_argument('--type', action='store', dest='mytype', help='...', required=True)
parser.add_argument('--enums', nargs='+', help='List to include')
args = parser.parse_args()

对于上述代码,Checkmarx显示了“args=parser.parse_args()”的高严重性错误消息,如下所示:

应用程序的get_process_output方法使用Popen调用OS(shell)命令,并使用不受信任的字符串执行该命令。 这可能允许攻击者注入任意命令,并启用命令注入攻击。 攻击者可以通过用户输入parse_args注入已执行的命令,该命令由应用程序在{}方法中检索

上面的python代码是在内部使用的(不是在像web站点这样的公共环境中),因此不会发生命令注入。所以在本例中,为了通过Checkmarx扫描,您能告诉我更新python代码的任何线索吗?(例如,是否有其他python API可用于替换上述“args=parser.parse_args()”?谢谢


Tags: store代码命令addtrueparserparserequired

热门问题