0

我有解析输入参数的python代码:

parser=OptionParser()
parser.add_option("-o", dest="out", default=os.getenv('Path',None), help="file path")
parser.add_option("-c", dest="content", default=os.path.abspath(sys.path[0]), help="cont path")
parser.add_option("-t", dest="tool", default=os.getenv('Tool',None), help="tool path")
parser.add_option("-m", dest="man", default=os.getenv('Path',os.getcwd())+os.sep+"man.ini", help="man.ini location")
(opt, agrs)=parser.parse_args()

Checkmarx 说明如下:应用程序的 main 方法使用 cmd 调用 OS(shell)命令,使用不受信任的字符串执行命令。这可能允许攻击者注入任意命令,并启用命令注入攻击。攻击者可能能够通过用户输入注入执行的命令,parse_args ...我想我需要去除不需要的字符,如|,&和; 但我不确定如何/在哪里做。我可以在“(opt, agrs)=parser.parse_args()”这行之前做吗?谢谢

4

0 回答 0