lambda 表达式的序列化有哪些安全风险?

2024-04-24

只是回顾一下 Streams 和 Java 8 Lambda 功能,以及对其他不言自明的 Oracle 文档的最后评论拉姆达表达式 http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html states:

如果 lambda 表达式的目标类型及其 捕获的参数是可序列化的。然而,就像内部类一样, 强烈建议不要序列化 ​​lambda 表达式。

检查这个我发现了SO问题

如何序列化 lambda? https://stackoverflow.com/questions/22807912/how-to-serialize-a-lambda

其中 OP 处理来自客户端代码的序列化 lambda 表达式。

如果我有一个 Web 服务,并且其中一个参数是 lambda 表达式,那么它似乎可能包含恶意代码,可以执行文件系统访问或导致堆栈溢出等操作 - 因此信任它是非常愚蠢的。

我是否过分夸大了安全风险,或者序列化表达式可以包含的内容是否有限制?


让我们这样说:Java 对象序列化(在某种程度上)无论如何都是一场安全噩梦(请参阅here https://stackoverflow.com/questions/11417103/serialization-how-to-secure-a-serialized-java-object例如 )。

换句话说:序列化其本身就是一个需要人们首先认真思考的话题。因此,无论您谈论序列化 lambda 还是任何其他类型的序列化对象,都并不重要。

因此,例如您想确保您理解并支持相应的规则,例如CERT https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=27492407.

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

lambda 表达式的序列化有哪些安全风险? 的相关文章

随机推荐

  • ORM 是用于迁移数据的正确工具吗?

    背景 我们正在升级旧版导入工具 它的作用是将数据从连接到 SQL Server 的一个数据库移动到同一服务器上的第二个数据库 并使用不同的模式沿途执行转换和映射 这是一个帮助解释正在发生的事情的示例 假设源数据库有一张表名为Client I
  • Java - 点在线

    我如何找出点 x y 是否位于其他两个点之间创建的线上 我尝试了这个 但似乎有些问题 因为我没有得到我应该得到的结果 public boolean intersects Point k Point z Point p Line2D line
  • Jackson 或 JAXB,哪一个更适合 JSON? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道 JSON Jackson 或 JAXB 哪一个更好 我做了一些研究 我知道 也许我错了 我们不应该使用 JAXB 来转换 JSON 某
  • 比较当前月份和上个月的列上的行,SQL Server 2012

    我需要一些指导和帮助来解决我不完全确定如何在 SQL Server 2012 中解决的问题 我认为LAG and LEAD函数可能有用 但我不确定 这就是我的数据现在的样子 YearMonth LocationCode Active 201
  • 是否可以使用文件名模式创建 blob 触发的 azure 函数?

    我正在开发一个 blob 触发的 azure 函数 以下是我的 function json 文件的配置 disabled false bindings name myBlob type blobTrigger direction in pa
  • 如何在 CKEditor 中更改已注册的对话框

    我正在尝试编写一个插件 向图像对话框添加一个附加选项卡 页面 我不想更改对话框的源本身 而是使用插件来增强它 我搜索文档和论坛已经有一段时间了 现在我知道我可以在对话框对象上调用 addPage 来添加另一个选项卡 我也了解内容对象必须是什
  • 识别 Pandas 数据框中组中重复项的更好方法? [复制]

    这个问题在这里已经有答案了 我有一个数据框 x c 0 0 1 1 3 2 2 1 1 3 2 1 4 3 1 5 4 1 6 1 0 7 3 1 8 2 1 9 1 2 我想生产 c x duplicated 0 1 0 False 1
  • 如何交错或创建两个字符串的唯一排列(无需递归)

    问题是打印两个给定字符串的所有可能的交错 所以我用 Python 编写了一个工作代码 其运行如下 def inter arr1 arr2 p1 p2 arr thisarr copy arr if p1 len arr1 and p2 le
  • 如何动态更改母版页

    我想为一个纯aspx文件动态分配一个母版页 任何人都可以告诉我 如何做到这一点 您可以覆盖 default aspx cs 中的 OnPreInit 并根据查询字符串中的某些值设置母版页 像这样的事情 protected override
  • 什么是低位和高位?

    谁能告诉我什么是低位和高位 如何识别高位和低位 下面是二进制形式 如何0110里面有更高位吗 0110 0111 1100 1010 1100 0111 1001 1011 就像十进制一样 二进制中较高位通常写在左侧 所以如果你看到0111
  • pandas.concat 和 numpy.append 大数据集的内存错误

    我面临一个问题 我必须在循环中生成大型 DataFrame 每次两个 2000 x 800 pandas DataFrame 时进行 50 次迭代计算 我想将结果保存在内存中更大的 DataFrame 中 或者保存在类似字典的结构中 使用
  • 查找 Java Enum 的最佳实践

    我们有一个 REST API 客户端可以提供代表服务器上 Java 枚举中定义的值的参数 所以我们可以提供一个描述性错误 我们添加这个lookup每个枚举的方法 看起来我们只是在复制代码 不好 有更好的做法吗 public enum MyE
  • AWS - t2.micro 实例 EBS 卷大小

    我试图通过 AWS 控制台创建 t2 micro 实例 我希望它免费一年 但它不附带任何实例存储 所以我想在这个实例中添加 EBS 卷 免费吗 我可以在 t2 micro 中免费添加的最大 EBS 卷是多少 Model vCPU CPU C
  • 我应该使用全局变量在整个服务器上共享 socket.io 实例吗

    以下是我的 node js 应用程序中的 server js 文件 我希望我的 socket io 实例能够被服务器上的其他文件访问 以便从我的 API 发出事件 listingRoutesApi userRoutesApi etc ref
  • 包含“类型”成员的联合

    关于工会 我有一个关于我仍然不明白的问题 我读过它们的很多用途 并且大部分都可以看到它们如何有用并理解它们 我已经看到它们可以提供原始的 C 风格 多态性 我在几个网站上看到的例子是 SDL 的事件联盟 typedef union Uint
  • ui-router:没有视图模板的路由

    是否可以设置路线ui router只有一个控制器 目的是在某个 URL 处 我唯一想做的是以编程方式执行操作 而不是在视图中显示任何内容 我已经阅读了文档 但我不确定他们是否提供了一种方法来做到这一点 是的 我读过这个 https gith
  • 在设置为日本区域设置和语言的 Windows 10 上使用 Java 9 时,未正确打印 IOException 消息

    在此特定块中抛出异常 try transport m readListener onReadTransport transport catch IOException e gt onIOException e transport onIOE
  • IE11 和 Edge 中出现带有 border-radius 的幽灵“边框”

    在 IE11 和 Edge Windows 10 上 中 以下 HTML CSS 在不应该出现的地方显示奇怪的透明边框
  • Matlab:通过扩展向量来扩展矩阵

    我有一个dxmxn matrix A 解释 对于每个n 有m维度向量d 我想将每个 d 维向量扩展如下 考虑一个向量v维度 d 1 2 d 它是 x 1 x 2 x d 但为了简单起见 我删除了 x 目标是延长v获得一个d d向量形式 1
  • lambda 表达式的序列化有哪些安全风险?

    只是回顾一下 Streams 和 Java 8 Lambda 功能 以及对其他不言自明的 Oracle 文档的最后评论拉姆达表达式 http docs oracle com javase tutorial java javaOO lambd