日志锻造强化修复

2024-05-19

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

基本上,我记录一些来自 Web 界面的用户输入的值:

logger.warn("current id not valid - " + bean.getRecordId()));

Fortify 将此报告为日志伪造问题,因为获取记录Id()返回用户输入。

我已经关注了这个article http://www.jtmelton.com/2010/09/21/preventing-log-forging-in-java/,我用空格替换“新行”,但问题仍然存在

logger.warn("current id not valid - " + Util.replaceNewLine(bean.getRecordId()));

谁能建议一种方法来解决这个问题?


我知道这已经得到回答,但我认为一个例子会很好:)

<?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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日志锻造强化修复 的相关文章

随机推荐