如何防范资源耗尽等漏洞?

2024-04-25

我们碰巧使用IBM appscanhttp://www-01.ibm.com/software/awdtools/appscan/ http://www-01.ibm.com/software/awdtools/appscan/

针对我们的 java 代码库,它返回了大约 3000 个高严重性漏洞。

其中大多数恰好是系统信息泄漏,它认为当我们在 catch 块中打印堆栈跟踪时就会发生这种情况,但我们只打印发生的文件名和行号,使我们能够更好地调试代码。

还有一些是关于 SQL 注入、输入验证等。

但是,我的问题是关于资源耗尽(文件描述符、磁盘空间、套接字等),它列出了java.io.BufferedReader.readLine作为可能的外部攻击的场所。

       InputStream ins=conn.getInputStream();

      String inputLine;

      if (!preserveLinefeeds) {
         BufferedReader in = new BufferedReader(new InputStreamReader(ins));
         while ((inputLine = in.readLine()) != null)
            pr.readThreadResponse+=inputLine;
         in.close();
         ins.close();
      } 

conn 是一个 HttpURLConnection 对象。

如何在代码中添加保护措施来防止这种情况发生?


如果 AppScan 指示与 readLine 相关的拒绝服务漏洞,则可能不是由于对无法关闭流的任何担忧(无论这可能有多重要),而是由于 readLine 的无限制性质。由于 readLine 会继续读取输入,直到读取换行符或 CR-LF 为止,因此如果输入源不可信,您可能会在没有预期 CR-LF 的情况下输入大量数据,从而导致内存耗尽情况。

要解决此问题,您可以确保(通过应用程序外部的机制)将输入大小限制在安全合理的范围内(尽管 AppScan、Fortify 和其他工具将继续抱怨 readLine),或者更好的是,您可以替换您的readLines 具有有界读取例程,该例程设置将读入缓冲区的字符数的绝对最大值。

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

如何防范资源耗尽等漏洞? 的相关文章

随机推荐

  • 创建通用 Json 序列化函数

    是否可以使用 Play Framework 2 2 在 Scala 中创建一个通用函数 将任意对象序列化为 JSON 而无需提供编写器或格式化程序 例如 此非通用代码将创建给定客户的 JSON 响应 import play api libs
  • this.props.history.push("/") 没有将我重定向到主页

    我正在尝试将此登录页面重定向到主页 但出于某种原因this props history push 没有重定向它 我有一个handleSubmit它应该在我按下登录按钮后运行 我不太确定发生了什么事 按登录按钮运行handleSubmit但是
  • 使用 casperjs 测试损坏的 html

    我试图在运行一些 CasperJs 浏览器测试之前运行一些设置例程 有一次我无法填写表单数据 因为有一些错误的 HTML 表单标签在表格中错误放置 table table
  • 内部接口?

    我对 Java 很陌生 我不明白这个结构是什么 我知道什么是接口以及如何定义 但在这种情况下 我真的不知道 你能说说是关于什么的吗 public interface WebConstants public interface Framewo
  • 在 Java 中实现常量的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 如何列出我在 Team Foundation Server 中签入的所有文件?

    我怎样才能列出最后一个x我签入到 TFS 的文件 Using the TFS PS Snapin included with the TFS PowerToys1 Get TfsItemHistory recurse stop 50 use
  • 在 mysql 中搜索带变音符号的阿拉伯语

    所以我有一个巨大的带有变音符号的阿拉伯语书面文本数据库 变音符号是阿拉伯语中附加到其他字符的小字符 例如 带变音符号 不带变音符号 我正在使用 mysql 和 laravel 在文本中搜索没有变音符号的特定单词 如何忽略搜索中的变音符号 看
  • Django:时区问题

    注意 我删除了之前存在的问题 并在此处仅提供相关信息 我们的数据库服务器 RH 指定了 TIME ZONE Europe London 并且 在 Django settings py 中 我们指定 TIME ZONE America New
  • MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是否完全成功

    我有一个大函数 可以获取大量不同的数据并将其插入到多个表中 并非所有数据始终可用 因此并非所有 SQL INSERT 查询都会成功 我需要检查哪个 SQL INSERT 查询完全成功 哪个 SQL INSERT 查询没有对这些数据执行某些操
  • 从打字稿和 Angular 中的 Observable 获取字符串值

    我想从 Observable 获取字符串值并将该值从函数返回给调用者函数 例如 我有一组键 想一一获取所有键的值 字符串 并将其显示在具有菜单栏的 html 组件中 这是 ts 文件 key list component ts public
  • 优选的标签云可视化格式

    出于好奇 我很想知道什么标签云格式最适合发现越来越多 相关 内容的目的 我知道 3 种格式 但不知道哪一种最好 1 好吃的一个 http delicious com tag 颜色渐晕 2 The 标准一 http stephenslight
  • 重写 PHP 中的静态方法

    我有一个抽象页面类 如下所示 abstract class Page public static function display self displayHeader self displayContent self displayFoo
  • Puppeteer 页脚仅显示在最后一页

    我的 Puppeteer 的 footerTemplate 参数有问题 页脚仅显示在文档的最后一页 我希望它显示在文档的每一页上 嗯 页脚 也许我没有正确使用参数 这是我的 Puppeteer pdf 生成 const browser aw
  • Android O 设备中未出现 Google Smart Lock 对话框

    我最近将 GoogleSmartLock 与我的应用程序集成 不知何故 Android O 设备中没有出现保存对话框 并且 API 抛出以下错误 凭证 API 的保存确认对话框已被禁用 避免与 Android 自动填充功能发生冲突 这个选择
  • 删除列值 < 0 的 Pandas DataFrame 行

    我已经阅读了答案this https stackoverflow com questions 18172851 deleting dataframe row in pandas based on column value线程 但它没有回答我
  • 想了解 Windows 剪贴板内部结构

    我有兴趣学习 Windows 系统内部结构及其工作原理 我倾向于学习windows上的系统编程 在这种背景下 我很想知道有关 Windows 剪贴板内部功能的一些事情 当我们选择一些文本 图像等并按下时会发生什么 Ctrl C 当我们在不同
  • /system/lib/libart.so 中的本机崩溃

    我在 Play 商店中有一个应用程序 它有一个IntentService当应用程序启动时 它会做一些工作 并且会导致 Android 5 0 上的本机崩溃 该服务仅扫描资产文件夹以进行应用程序更新 具体来说 这次崩溃似乎发生在升级到 Lol
  • 地形破坏后保留资源

    我想在关闭使用 terraform 创建的一堆资源 包括 CloudWatch 日志组 后保留 CloudWatch 日志 有没有办法告诉terraform destroy节省一些资源 我想我可以在调用 destroy 之前手动从 tfst
  • 如何使用 Azure Active Directory Graph API 获取属于 AppRole 的所有用户

    我一生都无法弄清楚如何查询 Azure Active Directory 的图形 API 来获取属于特定 AppRole 的所有用户 首先我尝试了类似的东西 client Users Where u gt u AppRoleAssignme
  • 如何防范资源耗尽等漏洞?

    我们碰巧使用IBM appscanhttp www 01 ibm com software awdtools appscan http www 01 ibm com software awdtools appscan 针对我们的 java