1

我正在使用带有最新规则包的 Visual Studio 2012 和 HP Fortify 4.21。

代码 (C#) 位于具有 HP Fortify 的同一台机器上,我只使用 AWB 而不是 SCC。当开发人员进行构建时,代码成功构建,但是当我尝试使用 Fortify 进行扫描时出现错误。

ASP 预编译错误

无论我是从 VS 还是从命令行启动,都会发生此错误。日志没有显示任何错误或警告,但在最后说明没有要存储的内容,因此永远不会创建 fpr 文件。如果我从 Audit Workbench 运行扫描,它只会崩溃,说明它无法创建构建 ID。

我确实找到了解决 ASP 问题的建议(如下),但它失败并且没有创建 fpr 文件以能够运行最后一行(进行扫描)。

我感谢任何帮助!

第 1 步:清理 sourceanalyzer -b "Build ID" -clean

第 2 步:翻译/构建 sourceanalyzer -b "Build ID" -Xmx1280M -Xss8M -debug -logfile trans.log devenv "Sample.sln" /Rebuild Debug

第三步:分析 sourceanalyzer -b "Build ID" -Xmx1280M -Xss8M -debug -logfile scan.log -scan -f Results.fpr

4

6 回答 6

3

我遇到了这个问题,这解决了我的问题。

步骤 1. 单击“构建”选项卡 步骤 2.单击“清理解决方案” 步骤 3. 解决方案资源管理器中很可能出现两个文件夹(bin 和 obj)。右键单击每个并将其删除,无论您按什么顺序执行。步骤 4. 单击“BUILD”选项卡步骤 5.单击“重建解决方案”步骤 6.尝试再次运行 FORTIFY

额外步骤 第 7 步。如果仍然无法正常工作,请检查您的 web.config 是否有错误。该项目将生成错误,但会导致 Fortify 的预编译失败。

步骤 8. 尝试通过转到 HP Fortify -> 选项 -> 项目设置 -> 内存 (MB) -> 1024(或更高)来为 Fortify 分配更多 RAM。

于 2017-02-09T20:10:10.203 回答
0

我遇到过类似的问题。在另一台机器上试试。有时这使它起作用。如果没有,那是由于 Fortify 错误造成的。与 Fortify 支持合作帮助我找到了问题所在。尽管我不相信它有帮助,但惠普在上面提交了一个错误。也就是说,一旦我知道文件中的哪个构造导致失败,我就能够修改文件以完成 Fortify。

对不起,我没有更多的帮助。

于 2015-05-20T03:07:34.620 回答
0

问题在于您的一个或多个 ASPX 文件。对于 dotnet web 表单,ASPX 页面不是由 Visual Studio 编译的,它们是在服务器上动态编译的。为了让 Fortify 扫描该代码,它正在调用 ASPNET_compiler 来编译您的 ASPX 文件。从命令行传递 -debug,然后在日志中查找对 ASPNET_compiler 的调用。您可以复制这些参数,然后在 Visual Studio 命令提示符下运行它们以查找导致问题的 ASPX 文件。请记住,当向 ASPNET_compiler 传递一个目录进行编译时,它会在发现第一个错误时死掉。您可能需要运行几次才能找到所有错误。

于 2015-05-21T00:44:37.387 回答
0

检查 AWB 中的分析信息选项卡以了解相关的扫描错误。还要查看扫描日志文件中的相关条目。

如果 Eric 正确,您可能需要将 sourceanalyzer 放入构建脚本中,以防问题再次出现。

于 2015-05-21T15:30:47.300 回答
0

步骤 1.-单击“构建”选项卡步骤 2.-单击“清理解决方案”步骤 3.-解决方案资源管理器中出现 2 个文件夹(bin、obj)。右键单击
每个 1 ,将其删除,无论顺序如何。步骤 4.单击“构建”选项卡步骤 5.单击“重建解决方案”步骤 6.尝试再次运行强化

额外的步骤第 7 步。 - f 仍然不起作用检查 web.config 错误。项目构建错误导致预编译失败强化。

第 8 步 - 尝试分配更多 ram fortify 去 hp fortify -> 选项 -> 项目设置 -> 内存 (mb) -> 1024(或更高)。

下面的链接帮助解决了我的问题。 http://nayviocde12.blogspot.be/2012/08/aspnet-hp-fortify-scans-get-asp-pre.html

于 2017-09-20T10:42:52.200 回答
0

Fortify SCA 版本 16.20 及更高版本

从 Fortify SCA 版本 16.20 开始,ASP.Net 代码不再使用 Microsoft aspnet_compiler.exe,因此此特定问题不会再次发生。

Fortify SCA 版本 16.20 之前

我首选的调试预编译器问题的方法是将此命令添加到 Visual Studio 中 Web 项目的构建后事件中,这样错误就会显示在错误列表中。

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe" -v / -p $(ProjectDir)

要记住的另一件事是,如果您有不属于解决方案但属于 Web 项目目录的文件,aspnet_compiler 仍会读取它们。

当开发人员从 Visual Studio 中排除文件时,我发现这种情况很常见。这不会删除它们。或者,如果他们删除它们,则通过 Visual Studio 界面而不是从底层源代码存储库中删除,它们只是在结帐时再次下载。

一个简单的检查方法是在 Visual Studio 解决方案资源管理器窗口中打开显示所有文件。

于 2017-09-20T11:26:54.327 回答