无法解决原木锻造强化问题

2024-02-03

我在修复 Fortify 中的日志锻造问题时遇到问题。 getLongFromTimestamp() 方法中的两个日志记录调用都引发了“将未经验证的用户输入写入日志”的问题。

public long getLongFromTimestamp(final String value) {
    LOGGER.info("getLongFromTimestamp(" + cleanLogString(value) + ")");

    long longVal = 0;
    Date tempDate = null;
    try {            
        tempDate = new SimpleDateFormat(FORMAT_YYYYMMDDHHMMSS, Locale.US).parse(value);
    } catch (ParseException e) {
        LOGGER.warn("Failed to convert to Date: " + cleanLogString(value) + " Exception: " + cleanLogString(e.getMessage()));
        throw new Exception(e);
    }

    if (tempDate != null) {
        longVal = tempDate.getTime();
    }
    return longVal;
}

private cleanLogString(String logString) {
    String clean = logString.replaceAll("[^A-Za-z0-9]", "");

    if(!logString.equals(clean)) {
        clean += " (CLEANED)";
    }

    return clean;
}

cleanLogString() 方法修复了我的项目中的其他 Log Forging Fortify 问题,但它对上面的 2 个没有影响。

任何帮助,将不胜感激!


可以使用 fortify Java 注释来告诉 Fortify 从清理函数返回的数据现在是安全的。

当查看我的日志伪造问题时,我有通过 Web API 输入的字符串,因此有标志XSS and WEB在我的弦上。我试图找到只能删除这些标志的注释,但找不到任何方法来删除WEB旗帜。我找到的唯一文档是Samples/advanced/javaAnnotation目录。

由于我的清理方法确实会清理字符串,因此我选择删除所有标志。但这可能是一个问题,因为它可能隐藏侵犯隐私的行为。

@FortifyValidate("return")
private String sanitizeString(String taintedString) {
    return doSomethingWithTheString(taintedString);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法解决原木锻造强化问题 的相关文章

随机推荐

  • 使用 C++ 的 STL 进行 i 阶统计

    给定一个空数组 我需要进行两种类型的查询 向数组中插入一个元素 查找某个元素的索引k 显然数组必须保持排序 这可以通过使用来完成set容器 set
  • ionic cordova 构建 android --prod 时出错

    致命错误 CALL AND RETRY LAST 分配失败 JavaScript 堆内存不足 运行命令时出错 ionic cordova 构建 android prod Note that 离子构建安卓 离子运行安卓 and 离子服务一切正
  • 在一行中缓存一个中间变量

    我可以以某种方式缓存i toString在这个简单的函数定义中 def palindrome i Int i toString i toString reverse 我想让这个函数保持简单 没有经典的多行 大括号括起来的函数 你可以这样做
  • 扩展 UIComponentBase 时如何保存状态

    我正在创建一个复合组件 它将包装数据表以实现非常简单的分页 我需要在 ajax 请求之间保存状态 当前页码 我尝试在 FacesComponent 中创建字段 但发现它们在 JSF 生命周期中被删除 FacesComponent value
  • 使 CSS 三角形垂直重复(锯齿图案)

    我有这样的导航 我想要 gt gt gt gt gt 我认为将其作为单独的 div 来完成是最简单的 第二个只关心沿着导航长度重复一个模式 我在这里寻求帮助 但我发现的大多数文章都是关于水平重复三角形的 我喜欢这个解决方案http jsfi
  • whoosh 是否要求所有字符串都是 unicode ?

    我正在 Solr 的 Whoosh 中重做我的搜索应用程序 我现在正在学习快速开始 但每次我不得不处理字符串时我都会遇到问题 gt gt gt writer add document iden fil content F2T file to
  • WSO2 ESB 4.9.0:错误 101500 意味着什么

    在连接到服务器时 我们会收到如下错误
  • VBA AddressOf 崩溃 Office 应用程序

    我想运行一个简单的代码片段 但每次 Access 和 Excel 都会崩溃 我正在运行回调测试 2 您能帮我一下吗 多谢 Declare Function CallWindowProc Lib user32 Alias CallWindow
  • 为什么 Int 不继承/扩展 Ordered[Int]

    我有一个关于字体设计的问题 为什么 Int 不扩展 Ordered 特征 Int 不是天生有序的吗 相反 scala 库提供了隐式 orderer 方法 将 Int 转换为 Ordered Int 这里做出了哪些设计选择 示例取自 Scal
  • 禁用单选按钮单击上的下拉框

    我有两个单选按钮和一个下拉框 如下所示 我想做的是 1 选中 否 时 隐藏或灰显下拉框 然后 2 当选中 是 时 显示下拉框 任何指示将不胜感激 td td
  • 当推送到heroku时,有没有办法将资产管道资产转移到s3?

    有没有一种简单的方法可以通过资产管道并部署到heroku s3 我希望我的本地 Rails 应用程序能够正常在本地使用 image css js 当您预编译时 生产应用程序是否有一种简单的方法可以从 s3 提供其资产 而开发资产是本地的 而
  • 快速除以 10ˣ

    In my program I use a lot of integer division by 10x and integer mod function of power 10 例如 unsigned int64 a 12345 a a
  • 结构(差异列表) Prolog

    这个问题参考了本书第三章的材料 Prolog Clocksin 和 Mellish 编程 Ed 5 本书第72页显示了一个使用差异列表的程序 partsOf X P partsacc X P Hole Hole partsacc X X H
  • 为什么 fputs 和 fprintf 反转流顺序

    我不明白为什么 fputs 和 fprintf 反转流顺序 int fputs const char str FILE stream int fprintf FILE stream const char format ssize t wri
  • Github:分叉队列与拉取请求

    我正在与朋友在 Github 上开始一个项目 到目前为止 他已经创建了存储库 我也已经分叉了它 我开始对我的存储库进行更改 提交并将更改推送到源 我的分叉副本 我们现在准备将这些更改集成到他的原始存储库中 Fork 队列和 Pull 请求有
  • 解析格式奇怪的日期时间。有人想上前吗?

    我正在尝试解析日期戳 我从 Twitter 获得 但收到错误 这是日期戳 2010 年 8 月 27 日星期五 22 00 07 0000 这是我的代码 DateTime ParseExact MyDateValue ddd dd MMM
  • Laravel:具有共享表的多对多

    I have Locations模型有很多Employees 相似地Employees属于Locations 这很好而且效果很好 但后来我考虑添加PhoneNumbers Either a Location or an Employee可以
  • Debezium-不含连接器类型

    我正在尝试使用 Debezium 连接到本地计算机上的 mysql 数据库 尝试使用以下命令调用kafka sudo kafka bin connect standalone shsh kafka config connect standa
  • 逐行读取文件

    我正在尝试逐行读取文件 但我不知道如何在到达 EOF 时停止 我有这个代码 readWholeFile do inputFile lt openFile example txt ReadMode readALine inputFile re
  • 无法解决原木锻造强化问题

    我在修复 Fortify 中的日志锻造问题时遇到问题 getLongFromTimestamp 方法中的两个日志记录调用都引发了 将未经验证的用户输入写入日志 的问题 public long getLongFromTimestamp fin