下列 Web 应用程序代码会尝试从一个请求对象中读取整数值。如果数值未被解析为整数,输入就会被记录到日志中,附带一条提示相关情况的错误消息。

...

String val = request.getParameter("val");

try {

  int value = Integer.parseInt(val);

}catch (NumberFormatException nfe) {

  log.info("Failed to parse val = " + val);

}

...

如果用户为“val”提交字符串“twenty-one”,则日志中会记录以下条目:

INFO: Failed to parse val=twenty-one

然而,如果攻击者提交字符串 “twenty-one%0a%0aINFO:+User+logged+out%3dbadguy,则日志中会记录以下条目:

INFO: Failed to parse val=twenty-one

INFO: User logged out=badguy

显然,攻击者可以使用同样的机制插入任意日志条目。

修复方案,过滤引起Log Forging漏洞的敏感字符的公共方法

 /*** Log Forging漏洞校验* @param logs* @return*/public static String vaildLog(String logs) {List<String> list=new ArrayList<String>();list.add("%0d");list.add("%0a");list.add("%0A");list.add("%0D");list.add("\r");list.add("\n");String normalize = Normalizer.normalize(logs, Normalizer.Form.NFKC);for (String str : list) {normalize=normalize.replace(str, "");}return normalize;}

Log Forging (FORTIFY.Log_Forging)解决办法相关推荐

  1. windows event log 错误2 的解决办法(电脑网络连接图标消失的罪魁祸首)

    电脑开机右下角发现网络连接图标消失,电脑无法连接网络,定位问题后发现是前置的windows event log服务未启动导致网络连接无法正常运行 但手动启动windows event log服务时,提 ...

  2. moss得log文件不断增长的解决办法

    转自:http://bbs.winos.cn/viewthread.php?tid=35075&highlight=moss%B5%C3log%CE%C4%BC%FE%B2%BB%B6%CF% ...

  3. 华为手机或者平板调试安卓Log日志Log.v/Log.d不输出解决办法

    手机拨号 手机拨号*##2846579##*,进入projectmenu–后台设置–LOG设置–LOG开关–打开 4.0以上的系统勾选[AP日志][CP日志] 平板用计算器输入()代替#* 可以使用横 ...

  4. php5编译安装常见错误和解决办法集锦

    最近在给开发同事折腾开发测试环境,其中就有 php 的编译安装.由于每个人的需求不一致,所以也接触到了各种模块编译和集成,中间不乏各种编译依赖报错. 正好,搜了几次都是下面 2 篇文章内容,干脆就转到 ...

  5. Log forging漏洞解决办法

    输出日志前,将引起Log Forging 漏洞的敏感字符过滤一下 /*** 过滤引起Log Forging漏洞的敏感字符* @param str*/ private String filterLogF ...

  6. SpringBoot项目中解决Fortify漏洞Log Forging日志伪造

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.例子 下列 Web 应用程序代码会尝试从一个请求对象中读取整数值 ...

  7. Upgrade after a crash is not supported. The redo log was created with Maria的解决办法

    关于[InnoDB] Unsupported redo log format (0). The redo log was created before MySQL 5.7.9的解决办法 利用mkdir ...

  8. tf2.0环境下“module ‘tensorflow‘ has no attribute ‘log‘”的解决办法

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 一.问题 二.根本原因 三.解决办法 方法一 方法二 一.问题 目前,尝试着通过tensorflow对医学图像进行 ...

  9. 关于 MySQL5.7.log 版本导出 SQL 语句再导入 8.0.13 版本出现 Incorrect datetime value: ‘0000-00-00 00:00:00‘ 错误的解决办法

    环境配置 导出数据库版本:5.7.12.log 导入数据库版本:8.0.13 问题: 导出 SQL 脚本,再在高版本数据库中导入时,出现 Incorrect datetime value: '0000 ...

最新文章

  1. 用Maven插件生成Mybatis代码/数据库
  2. 合成孔径雷达技术——概述
  3. python 访问需要HTTP Basic Authentication认证的资源
  4. c语言楼梯有10级台阶,C语言小程序之没事爬楼梯
  5. shell执行的特殊变数
  6. C++socket编程(五):5.2 tcp编程总结
  7. 50 岁的他笑谈码农真相,看完清醒了!| 人物志
  8. html5留言板网页设计,网页设计制作-留言板
  9. neatupload 控件上传大文件
  10. Mysql 最最最基本语句(大全)
  11. golang语言环境搭建
  12. oppo,ofp格式解包工具.Unpack ofp oppo手机,ofp线刷包解包教程
  13. 如何开始使用接口自动化测试脚本
  14. linux 极点五笔,Linux 安装ibus极点五笔输入法备忘录
  15. 深入分析Java中的length和length()
  16. 360浏览器显示服务器拒绝连接,360浏览器提示“您与此网站之间建立的连接不安全完美解决方法...
  17. Chrome浏览器怎么安装插件
  18. PLC若想实现以太网口无线通讯,需要具备哪些条件?
  19. 卡尔曼滤波理论小释之卡尔曼增益
  20. x3+y3+z3=3

热门文章

  1. 分享插件 jiaThis
  2. Quested V2108录音室监听音箱评测
  3. 父页面调子iframe页面方法和子iframe调用父页面方法
  4. 关于RemoteView的一点愚见(RemoteView在AppWidget中的工作流程)
  5. [力扣cpp实现] 589. N叉树的前序遍历
  6. 分页第一页用0还是1_白杨SEO:5000字从0-1拆解如何用知乎排名做精准引流和变现?...
  7. 2022 重新认识绩效评估:定义、特点、步骤【下篇】
  8. 三层交换机配置及命令
  9. UE4 C++变量网络复制的规则
  10. 锤子、360、美图……金立之后下一个倒下的“三线”是谁?| 一点财经