黑马程序员技术交流社区

标题: 如下代码存在漏洞 [打印本页]

作者: ccyznhy    时间: 2013-8-26 17:13
标题: 如下代码存在漏洞
如下代码如果类中的方法声明是私有的 就不能解决了,请教大家怎么解决啊?
private static void setProperties(Object rpt,
                        String propertyName, Object value) throws IntrospectionException,
                        IllegalAccessException, InvocationTargetException {
                PropertyDescriptor pd2=new PropertyDescriptor(propertyName,rpt.getClass());
                Method methodSetY=pd2.getWriteMethod();
                methodSetY.invoke(rpt, value);
        }


作者: 薛淑凯    时间: 2013-8-26 17:50
本帖最后由 薛淑凯 于 2013-8-26 17:59 编辑

中文文档翻译的不全。
public Method getWriteMethod()Gets the method that should be used to write the property value.
Returns:
The method that should be used to write the property value. May return null if the property can't be written.私有了就算不存在了吧

作者: 老衲玩IT    时间: 2013-8-28 12:08
属性获取和设置必须要有公开接口给用户才行,你的setProperties()方法如果是私有的,没有公开接口,你给谁去调用?
作者: yangqing    时间: 2013-8-28 13:14
可以通过暴力访问来访问私有化成员:通过pd2.getDeclaredWriteMethod();通过这个设置成可以访问。
                                                                  pd2.setAccessible(true);这个设置成可调用。
这两部共同组成了暴力访问。


作者: 以防万一    时间: 2013-8-31 14:25
{:soso_e176:}
亲,请问下问题是否解决?
如果已解决请及时将未解决改为已解决
如果未解决请回帖追问
三天未回复的将视为已解决

详情参考: 如何更改分类

保持队形,谢谢合作{:soso_e121:}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2