博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从Java 9反向移植对象反序列化过滤器
阅读量:6324 次
发布时间:2019-06-22

本文共 1012 字,大约阅读时间需要 3 分钟。

让开发人员可以在反序列化对象时对传入数据进行过滤。该提案最初是针对Java 9提出的,但现在。该特性提供了一种机制,可以在处理对象输入流时过滤传入数据,并且可以帮助预防反序列化漏洞。前不久,这种漏洞曾及其他库。

\\

反序列化不可信任数据是(OWASP)和(尤其是规则和)等所列出的一个众所周知的风险。软件开发人员应该总是检查通过ObjectInputStream传入的数据是否有效,不过,借助JDK中现有的工具,这有时候并不容易实现。JEP 290改变了这种情况,它提供了一种方法过滤传入数据,而且不需要扩展ObjectInputStream。这是通过多种机制实现的,取决于相关开发人员的需要。

\\

一般来说,开发人员可以通过编辑系统属性jdk.serialFilter或者conf/security/java.properties中的安全属性jdk.serialFilter配置默认的。这些属性可以接受一种或多种模式,用于查找类(使用类似Ant文件模式的语法),或者设置对反序列化对象属性的限制:

\\
\// 拒绝反序列化任何属于untrustedmodule的类,\// 以及任何元素数超过500的数组\jdk.serialFilter=!untrustedmodule/.**;maxarray=500 \\// 包com.myorg.trusted的白名单类,\// 但不一定是来自子包\jdk.serialFilter=com.myorg.trusted.* \
\\

如果需要更大的灵活性,那么开发人员可以指定自己的动作和检查,实现自己的,然后使用应用到已有的ObjectInputStreamObjectInputFilter可以使用提供的信息确定当前正在反序列化的对象是可以接受还是需要拒绝,或者该过滤器并没有提供足够的决策信息;在后一种情况下,自定义的过滤器可以将状态置为“不确定”,并委托另一个用户定义的过滤器或者默认的系统过滤器进行决策。

\\

最后,如果开发人员希望在所有的反序列化过程中都使用自己的机制,就可以使用将一个用户定义的过滤器指定为系统默认的过滤器。

\\

如本文开头所言,开发人员不需要等到Java 9才开始应用序列化过滤器;Java 8 update 121、Java 7 update 131、Java 6 update 141均提供了JEP 290。

\\

查看英文原文

转载地址:http://yomaa.baihongyu.com/

你可能感兴趣的文章
Linux C 静态库(.a) 与 动态库(.so) 的详解
查看>>
JS函数
查看>>
sql语句分组/排序/计算总数/连接等sql语句书写
查看>>
【.net 深呼吸】启动一个进程并实时获取状态信息
查看>>
MVC5 的MicrosoftOwinSecurity扩展插件——微信,QQ登录第三方源码
查看>>
分布式系统理论基础 - CAP
查看>>
mysql 用户管理和权限设置
查看>>
【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目
查看>>
[转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)...
查看>>
Numpy 的ndarray
查看>>
牛人博客 列表
查看>>
数据库连接池dataesoruce pool深入理解
查看>>
vuejs2.0使用Sortable.js实现的拖拽功能
查看>>
oracle多实例的启动与关闭
查看>>
码农生涯杂记_4
查看>>
10-排序4 统计工龄
查看>>
postgresql的show databases、show tables、describe table操作
查看>>
利用jQuery设计横/纵向菜单
查看>>
unity游戏开发之NGUI的UISprite染色
查看>>
Hadoop作业性能指标及參数调优实例 (三)Hadoop作业性能參数调优方法
查看>>