gpt4 book ai didi

fortify - 如何使用 Fortify Scan 16.11 通过 project.Json 扫描 dotnet 核心

转载 作者:行者123 更新时间:2023-12-01 06:05:24 42 4
gpt4 key购买 nike

我创建了一个默认的 .Net Core 1.0.1 类库并更改了 project.json 中的 buildOptions 以包含 debugType:“Full”。我使用 16.11 使用了集成的 VS 2015 Fortify Scan,但出现以下错误。我应该如何扫描 dotnet core 以避免这个问题?

项目“src\providesFileInPackage\providesFileInPackage.xproj”未配置为输出完整的调试信息。 SCA 分析需要完整的调试符号。您想忽略项目并继续吗?
(项目属性 -> 构建 -> “高级”按钮 -> 调试信息 -> “完整”
或者
项目属性 -> 编译 -> 高级选项 -> 调试信息 -> VB 的“完整”)

我的项目 json 看起来像

{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
},
"buildOptions": {
"define": [ "DEBUG" ],
"debugType": "full"
}
}

最佳答案

我有同样的问题。这归咎于 xproj文件而不是 project.json所以我尝试添加

<DebugType>full</DebugType>

PropertyGroup但无济于事。

最后,我通过从命令行运行 Fortify 找到了一种解决方法:
msbuild MyApplicationSca.proj /p:Configuration=Release /t:Rebuild /m

我的 MyApplicationSca.proj看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<MySolution>MyApplication.sln</MySolution>
<Configuration Condition=" $(Configuration) == '' ">Debug</Configuration>
<CommonMSBuildProperties>BuildingSolutionFileName=true</CommonMSBuildProperties>
<RunHPFortify Condition=" '$(RunHPFortify)' == '' ">false</RunHPFortify>
<HPFortifyPath Condition=" '$(HPFortifyPath)' == '' ">$(ProgramW6432)\HP_Fortify\HP_Fortify_SCA_and_Apps_4.40\</HPFortifyPath>
<FortifyMSBuildTasks>$(HPFortifyPath)Core\lib\FortifyMSBuildTasks.dll</FortifyMSBuildTasks>
</PropertyGroup>

<ItemGroup>
<Projects Include="$(MySolution)">
<AdditionalProperties>Platform=Any CPU</AdditionalProperties>
</Projects>
</ItemGroup>

<Target Name="Clean">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="$(CommonMSBuildProperties)" />
</Target>

<Target Name="Build">
<MSBuild Projects="@(Projects)" Targets="Build" Properties="$(CommonMSBuildProperties)"
StopOnFirstFailure="true" />
</Target>

<Target Name="Rebuild">
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="$(CommonMSBuildProperties)"
StopOnFirstFailure="true" />
</Target>

<UsingTask TaskName="Fortify.CleanTask" AssemblyFile="$(FortifyMSBuildTasks)" />
<UsingTask TaskName="Fortify.TranslateTask" AssemblyFile="$(FortifyMSBuildTasks)" />
<UsingTask TaskName="Fortify.ScanTask" AssemblyFile="$(FortifyMSBuildTasks)" />

<Target Name="FortifyBuild" AfterTargets="Build;Rebuild" Condition="$(RunHPFortify)">
<PropertyGroup>
<BuildID>MyApplication</BuildID>
<HPFortifyLogsDir>..\HPFortifyLogs\</HPFortifyLogsDir>
<PackagesDir>$(MSBuildProjectDirectory)\packages\</PackagesDir>
<OutDir>$(MSBuildProjectDirectory)\MyApplication\bin\$(Configuration)\net452\win7-x64\</OutDir>
<SCATargetBinary>$(OutDir)MyApplication.exe</SCATargetBinary>
<FPRFilePath>$(HPFortifyLogsDir)MyApplication.fpr</FPRFilePath>
<SSCUploadToken Condition=" '$(SSCUploadToken)' == '' ">1cfe9977-905c-4da4-bb57-97e3dcc33099</SSCUploadToken>
</PropertyGroup>

<ItemGroup>
<TranslateTaskReferences Include="$(OutDir)" />
</ItemGroup>

<CleanTask BuildID="$(BuildID)" />

<TranslateTask
BuildID="$(BuildID)"
VSVersion="14.0"
JVMSettings="-Xmx1000M"
BinariesFolder="$(SCATargetBinary)"
References="@(TranslateTaskReferences)"
LogFile="$(HPFortifyLogsDir)sca_translate_task.log">
</TranslateTask>

<ScanTask
BuildID="$(BuildID)"
JVMSettings="-Xmx1000M"
LogFile="$(HPFortifyLogsDir)scan_task.log"
Output="$(FPRFilePath)" />

</Target>

</Project>

我现在没有进行更多的调查,但我希望这能让我们更接近答案。

关于fortify - 如何使用 Fortify Scan 16.11 通过 project.Json 扫描 dotnet 核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40731716/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com