这个注解是为了堵住漏洞用的。曾经有黑客通过构造双重反射来提升权限,原理是当时反射只检查固定深度的调用者的类,看它有没有特权,例如固定看两层的调用者(getCallerClass(2))。如果我的类本来没足够权限群访问某些信息,那我就可以通过双重反射去达到目的:反射相关的类是有很高权限的,而在 我->反射1->反射2 这样的调用链上,反射2检查权限时看到的是反射1的类,这就被欺骗了,导致安全漏洞。使用CallerSensitive后,getCallerClass不再用固定深度去寻找actual caller(“我”),而是把所有跟反射相关的接口方法都标注上CallerSensitive,搜索时凡看到该注解都直接跳过,这样就有效解决了前面举例的问题
jvm注解 @CallerSensitive的用处
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
java线程并发库
ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
xinyetonghua
2020-07-08 12:36:33
分布式系统各个节点状态如何同步?浅谈一下
毛发旺盛的程序员
2020-07-08 12:27:30
ZooKeeper 一致性协议 ZAB 原理,了解一下
毛发旺盛的程序员
2020-07-08 12:27:20
Spring中Transactional 失效的解决方案,让我们一起探讨一下
毛发旺盛的程序员
2020-07-08 12:27:20
太狠了,Spring全家桶笔记,一站式通关全攻略,已入职某厂涨薪18K
毛发旺盛的程序员
2020-07-08 12:27:20
java中的NAN和INFINITY java中的NAN和INFINITY
a318013800
2021-11-28 13:09:28
【Java 小白菜入门笔记 2.2】常用的类和方法
江户川柯壮
2020-07-08 12:39:29
springboot增量打包更新--静态资源分离打包
CNOYG
2020-07-08 12:39:29
增加FastDfs多文件存储路径
pengdayong77
2020-07-08 12:37:23
JSONArray指定日期的反序列化
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM
pengdayong77
2020-07-08 12:37:23
java缓存对象,使之不需要每次都从数据库中获取,以提高程序性能
pengdayong77
2020-07-08 12:37:23
大数据入门(七)win10上eclipse使用Hadoop的配置
33 Audrey
2020-07-08 12:35:23
Java动态绑定机制经典案列理解
柘月十七
2020-07-08 12:33:16