热门为python文件生成Fortify文件。
类似的问题是Fortify, how to start analysis through command,但它列出了java的步骤。
要为python项目生成报告,必须使用--python-path。 我尝试了以下步骤,但没有奏效。
第1步:清理,构建
sourceanalyzer -64 -Xms1024M -Xmx10000M -b -verbose -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/proj/working/9999/working/sca.log -clean
步骤2:扫描:此步骤应生成fpr文件
sourceanalyzer -b 9999 -verbose -Xms1024M -Xmx10000M -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/proj/9999/sca.log -python-path /path/to/python -f projec_999.fpr /local/proj/**/*.py
这没有生成任何fpr文件。 第二步发出警告:
[warning]: The -f option has no effect without the -scan option
[warning]: You may need to add some arguments to the -python-path argument to SCA.
我不确定我是否使用了正确的命令。
答案 0 :(得分:1)
您执行的第一步只执行Clean
,而不是构建步骤。
要执行Python的转换步骤,您需要指定任何Python引用(-python-path
)的目录以及要转换的文件。
我也不确定你在使用ProjectRoot和WorkingDirectory做什么,你知道这些用于存储sourceanalyzer的临时数据/中间文件而不是源代码的位置,对吗?
像
这样的东西sourceanalyzer -b <buildId> -python-path <directories> <files to scan>'
<buildId>
可用于对不同的项目进行分组,当您执行ProjectRoot
和WorkingDirectory
时,您自己也会这样做(我不确定您是否需要它们,可以'记住,我不再有权测试它了)<directories>
- 您可以在此处列出通常位于PythonPath环境变量中的目录(您可以在此处实际调用它并节省大量麻烦)。这是一个用于Windows的逗号分隔列表和一个用于Linux的冒号分隔列表<files to scan>
您可以在此处指定要翻译/扫描的文件。您可以指定单个文件或使用通配符(*
和**/*
[递归])示例命令如下所示:
sourceanalyzer -b MyApp -python-path %PYTHONPATH% ./MyApp/**/*
您可以使用其他选项,它们看起来像这样:
sourceanalyzer -b MyApp -Xms1024M -Xmx10G -logfile /local/proj/working/9999/working/sca.log -python-path %PYTHONPATH% ./MyApp/**/*
在此步骤中,您将检查我们从您的程序中翻译了哪些文件:
sourceanalyzer -b MyApp -show-files
然后你会执行扫描命令
sourceanalyzer -b MyApp -logfile /local/proj/working/9999/working/sca.log -scan -f project.fpr
答案 1 :(得分:0)
您可以多次申请-python-path
。这解决了使用哪个分隔符的问题。所需目录的列表可以通过python获取:
import sys
print(sys.path)