【Java代码审计】溢出&硬编码&随机数篇

1.整数溢出漏洞

概述

Java提供多种整数类型,每种类型都有其特定的取值范围:

  • byte:-128 到 127
  • short:-32,768 到 32,767
  • int:-2,147,483,648 到 2,147,483,647
  • long:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

当一个运算结果超出这些范围时,会发生溢出,导致结果循环到范围的另一端。例如,将一个int类型的变量加上一个大于其最大值的数字,结果会变成负数

攻击者可以利用整数溢出操控程序行为,导致未授权访问、拒绝服务或信息泄露等安全问题

修复方案

  • 对用户输入进行严格的范围检查,确保不超出预期值
  • 在进行运算之前,检查是否可能导致溢出。例如,可以使用Math.addExact()等方法来捕获溢出

2.硬编码密码漏洞

1、漏洞概述

硬编码密码是指在系统中采用明文的形式存储密码,其主要出现在以下几个方面:

猜你喜欢

转载自blog.csdn.net/Gherbirthday0916/article/details/142529444