- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过 Hp Fortify 运行代码,并发现了一些路径操作问题。我了解它的上下文并尝试解决。
我没有遍历从数据库中查询某些路径值以存储输出文件(日志、导出数据等)的所有位置,而是尝试将其集中。因此,我不想让 File.WriteAllText() 带有一些路径 + 文件名和内容,而是想包装成
FortifyFileWriteAllText()。然后,在此函数中,我预先进行一次路径验证检查,如果有效,则只允许写入继续,例如...
public static bool FortifyFileWriteAllText( string fileToWrite, string content)
{
if( ! MyPathValidationRoutine( fileToWrite ))
return false;
File.WriteAllText( fileToWrite, content );
return true;
}
所以,我知道这是实际验证和防止错误写入的缩写,但我调用 Path.GetFullPath() 来防止任何此类 ..\..\..
路径引用。然后查看最终路径,明确阻止根目录 C:、C:\Windows 和其他一些东西,但也有一个“干净”的路径列表。
那么,我将如何着手应用一条规则,该规则说明进入此例程的任何事情都可以,并且已经明确检查过并且没问题。
最佳答案
如果操作正确,fortify 数据流分析器将沿着您的数据路径进行跟踪,查看一些预期的函数(即 getCanonicalPath()、pattern.matcher() 等)并触发生成 TAINFLAG=VALIDATED_PATH_MANIPULATION 的接收器规则。然后数据流分析器看到这个特定的 TAINTFLAG,它会关闭问题报告。这个过程是有意设计的。如果您实现了函数 FortifyFileWriteAllText(),而 Fortify 仍然提示,可能是因为 fortify 不喜欢您正在使用的方法。
如果您认为函数 FortifyFileWriteAllText() 确实阻止了 PM,这里是自定义接收器规则,可以为您创建 VALIDATED_PATH_MANIPULATION 污点标志。放到~FORTIFY_HOME/Core/config/rules目录下使用。
<?xml version="1.0" encoding="UTF-8"?>
<RulePack xmlns="xmlns://www.fortifysoftware.com/schema/rules">
<RulePackID>YOUR RULE PACK ANME HERE</RulePackID>
<SKU>SKU-ANY THING HERE</SKU>
<Name><![CDATA[ANY THING HERE]]></Name>
<Version>1.0</Version>
<Description><![CDATA[]]></Description>
<Rules version="6.31">
<RuleDefinitions>
<DataflowSinkRule formatVersion="6.31" language="java">
<MetaInfo>
<Group name="MyCompany">Path Manipulation Remediation</Group>
<Group name="Accuracy">4</Group>
<Group name="Impact">3</Group>
<Group name="RemediationEffort">3</Group>
<Group name="Probability">4</Group>
<Group name="audience">targeted,medium,broad,dev,fod</Group>
</MetaInfo>
<RuleID>put-your-rule-id here-with-prefix-for-future-statistics</RuleID>
<VulnKingdom>Input Validation and Representation</VulnKingdom>
<VulnCategory>Path Manipulation</VulnCategory>
<DefaultSeverity>3.0</DefaultSeverity>
<Description ref="desc.dataflow.java.path_manipulation">
<Explanation append="true"><![CDATA[This issue is being reported by "your rule name here".]]></Explanation>
</Description>
<Sink>
<InArguments>this</InArguments>
<Conditional>
<Not>
<TaintFlagSet taintFlag="VALIDATED_PATH_MANIPULATION"/>
</Not>
</Conditional>
</Sink>
<FunctionIdentifier>
<NamespaceName>
<Pattern>com.yourpackage</Pattern>
</NamespaceName>
<ClassName>
<Pattern>yourclass</Pattern>
</ClassName>
<FunctionName>
<Pattern>FortifyFileWriteAllText</Pattern>
</FunctionName>
<ApplyTo implements="true" overrides="true" extends="true"/>
</FunctionIdentifier>
</DataflowSinkRule>
</RuleDefinitions>
</Rules>
</RulePack>
关于c# - HP Fortify 路径操作验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35804202/
我在 Tensorflow 2.0-beta0 中使用 HParams Dashboard 使用超参数,如此处的建议 https://www.tensorflow.org/tensorboard/r2
我最近创建了一个新的恢复场景,我们希望将其添加到数百个现有的运行脚本中。 不幸的是,将其设置为包含在默认值中仅适用于新脚本创建,并且不会将其追溯添加到所有现有脚本中。 我已询问 HP 支持,他们建议您
我正在通过开放测试架构 API 与 Quality Center 交互。 我想确定链接到查找表的错误字段的允许值。 这些可通过标准前端的下拉菜单获得。 谢谢 编辑:更详细的解释 我们有一些字段只允许在
我已经安装了 HP UFT v12.01,当我尝试通过 HP UFT 连接到 HP ALM Quality Center v11.0 时,出现以下错误: 无法从服务器更新组件。无法托管 Spider
使用 HP UFT v11.53 补丁 5BHOManager.dll 没有注册,当然在我们的一些测试机器上也没有启用。 谁能告诉我 BHOManager.dll 的用途以及如果未注册、安装、启用等可
我已经安装了 HP UFT v12.01,当我尝试通过 HP UFT 连接到 HP ALM Quality Center v11.0 时,出现以下错误: 无法从服务器更新组件。无法托管 Spider
hierarchy 我有一个包含 img 对象的 ShootingEnemy 对象(它上面有一个 SpriteRenderer)。射击敌人可以用玩家的子弹射击敌人。我希望它在 HP 水平下降时变得越来
我是 HP Vertica 的新手。我阅读了 HP Vertica 的安装文档。该文档完全基于 *ix 环境。所以,我的问题是我们也可以在 Windows 上安装 HP Vertica 吗? 另一件事
惠普企业(HPE)警告说,其Aruba AirWave管理平台所使用的开源程序Sudo中的一个漏洞会允许任何无特权和未经认证的本地用户在含有漏洞的主机上获得root权限。 根据HPE最近的安全公告
我试图创建一个Powershell脚本来完全自动化UFT(HP的Unified Functional Testing 12.01)安装和配置过程。是否有一个注册表设置可以控制“允许其他HP产品运行测试
您好,我在实现 HP-35 型计算器的基本功能时遇到了一些麻烦我是初学者,在将代码放在一起时遇到了很多麻烦,基本功能是加法、减法、乘法和除法我需要帮助。 下面是我的主文件: /* * File:
我试图了解在 HP-UX 11.11 中运行的导致 SIGSEGV(11,段错误)的程序出了什么问题: (gdb) bt #0 0x737390e8 in _sigfillset+0x618 ()
这个问题可能过于特定于产品,但我想知道是否有人从 HP 质量中心导出错误跟踪数据。 HP 质量中心 (QC) 有一个老式的 COM API,但我宁愿使用 Web 服务甚至屏幕抓取工具将数据导出到 Ex
对于我的 Controller 中的大多数操作方法,HP fortify scan 给我一条消息作为Mass Assignment: Insecure Binder Configuration (AP
我有一个 LeanFT 项目,当我从 IDE 执行它时,它工作正常。我使用 maven-assemble-plugin 生成了一个 jar 文件。 org.apache.maven.plug
我正在通过 Hp Fortify 运行代码,并发现了一些路径操作问题。我了解它的上下文并尝试解决。 我没有遍历从数据库中查询某些路径值以存储输出文件(日志、导出数据等)的所有位置,而是尝试将其集中。因
根据 HP Fortify 文档,静态代码分析器首先将源代码翻译成中间格式,然后扫描翻译后的代码并生成漏洞报告。 它说可以使用以下 Ant 代码进行翻译: 这将调用您的“编译”目标,但强
我使用 Jersey 构建了一个 Rest 服务并将其部署在本地 Tomcat 6 中,它工作正常,但是当我部署到 Hp-nonstop(我相信 Tomcat 6)时它不会出现。你能帮我一下吗?我还尝
我正在使用 HP QC 来管理缺陷(刚刚开始)并且对各种缺陷状态类型有疑问.... 我们有: 新 - 新缺陷 打开 - ?? 活跃 - 正在调查缺陷 已修复 - 开发团队已发布修复 - 需要重新测试
我有一个很简单的问题,为什么这段代码的输出是这样的? 我正在使用 Dev-C++ 5.11 和 TDM-GCC 4.9.2 64 位 #include using namespace std; in
我是一名优秀的程序员,十分优秀!