首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原木锻造强化修复

原木锻造强化修复
EN

Stack Overflow用户
提问于 2012-10-08 15:25:21
回答 4查看 34.6K关注 0票数 12

我正在使用Fortify SCA来查找我的应用程序中的安全问题(作为大学作业)。我遇到了一些“伪造日志”的问题,我无法摆脱。

基本上,我记录了一些作为用户从web界面输入的值:

代码语言:javascript
复制
logger.warn("current id not valid - " + bean.getRecordId()));

Fortify将此报告为日志伪造问题,因为getRecordId()返回用户输入。

我遵循了这个文章,我正在用空格替换“新行”,但是这个问题仍然有报道。

代码语言:javascript
复制
logger.warn("current id not valid - " + Util.replaceNewLine(bean.getRecordId()));

有人能提出解决这个问题的办法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-12 05:57:44

Alina,我实际上是您用来解决日志注入问题的文章的作者。希望能帮上忙。

维塔利对Fortify的看法是正确的。您需要构建Fortify所称的“自定义规则”。

这可能是一条数据流清理规则。这里可以找到一个基本的例子:http://www.cigital.com/newsletter/2009-11-tips.php。如果您拥有Fortify,那么在您的产品文档中应该有一个自定义规则编写指南。

我不知道你会使用什么污点标志,但它看起来有点像"-LOG_FORGING“。实际上,只要通过实用程序方法传递数据,您就会编写一条规则来删除日志伪造的“污染”。Fortify将假设任何通过那里的数据现在都可以安全地写入日志,并且不会导致日志伪造。

票数 8
EN

Stack Overflow用户

发布于 2012-11-30 17:39:27

我知道这个问题已经得到了回答,但我想举个例子比较好:)

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<RulePack xmlns="xmlns://www.fortifysoftware.com/schema/rules">
  <RulePackID>D82118B1-BBAE-4047-9066-5FC821E16456</RulePackID>
  <SKU>SKU-Validated-Log-Forging</SKU>
  <Name><![CDATA[Validated-Log-Forging]]></Name>
  <Version>1.0</Version>
  <Description><![CDATA[Validated-Log-Forging]]></Description>
  <Rules version="3.14">
    <RuleDefinitions>
      <DataflowCleanseRule formatVersion="3.14" language="java">
        <RuleID>DDAB5D73-8CF6-45E0-888C-EEEFBEFF2CD5</RuleID>
        <TaintFlags>+VALIDATED_LOG_FORGING</TaintFlags>
        <FunctionIdentifier>
          <NamespaceName>
            <Pattern/>
          </NamespaceName>
          <ClassName>
            <Pattern>Util</Pattern>
          </ClassName>
          <FunctionName>
            <Pattern>replaceNewLine</Pattern>
          </FunctionName>
          <ApplyTo implements="true" overrides="true" extends="true"/>
        </FunctionIdentifier>
        <OutArguments>return</OutArguments>
      </DataflowCleanseRule>
    </RuleDefinitions>
  </Rules>
</RulePack>
票数 9
EN

Stack Overflow用户

发布于 2012-10-09 07:42:24

您需要在Fortify中将您的replaceNewLine标记为清洁器(如果我没记错的话),它将停止报告问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12784707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档