前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java内部类----安全问题-----访问外围类的私有变量

java内部类----安全问题-----访问外围类的私有变量

作者头像
wust小吴
发布2019-07-05 11:32:19
1.5K0
发布2019-07-05 11:32:19
举报
文章被收录于专栏:风吹杨柳风吹杨柳

我们知道如果一个变量是私有的,它应该就不希望别人去访问它。

隐秘的访问方法需要拥有包的可见性,所有攻击代码需要与被攻击类放在同一个包中。

当使用了内部类的时候,编译器做了这样一件事:

它在外围类添加了一个静态方法 

static boolean access$0(外部类);

内部类方法将调用这个函数

这个是有风险的,因为任何人都可以通过access$0方法很容易的读取到外围类的私有域

黑客可以使用十六进制编辑器轻松创建一个用虚拟机指令调用这个函数的类文件。

结论就是:

如果内部类访问了私有数据域,就有可能通过附加在外围类所在的包中的其他类访问它们。

请慎用!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年11月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档