java setaccessible_「accessible」Java反射中的setAccessible()方法是否破坏了类的访问规则 - seo实验室...

news/2024/5/20 17:38:06/文章来源:https://blog.csdn.net/weixin_42106299/article/details/114451780

accessible

java反射机制提供的setaccessible()方法可以取消Java的权限控制检查,下面展示了这种方法的使用。package test;

import java.lang.reflect.field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

class A {

private int i = 5;

private void printI() {

System.out.println(this.i);

}

}

public class Test {

public static void main(String[] args)

throws ClassnotfoundException, instantiationexception, IllegalAccessException, NoSuchFieldException, SecurityException, NoSuchMethodException, illegalargumentException, InvocationTargetException {

String name = "test.A";

Class c = class.forname(name);

Object obj = c.newinstance();

Method method = c.getDeclaredMethod("printI");

//使private方法可以被调用

method.setAccessible(true);

method.invoke(obj);

Field field = c.getDeclaredField("i");

//使private成员可以被访问、修改

field.setAccessible(true);

field.set(obj, 10);

method.invoke(obj);

}

}

运行结果:

5

10

上述例子中,setAccessible(true)取消了Java的权限控制检查(注意不是改变方法或字段的访问权限),调用了类A的private方法,并且修改了其private成员变量的值。

而对于setAccessible()方法是否会破坏类的访问规则,产生安全隐患,我在知乎上面看到的一篇回答貌似很有道理:

c5c09bfa79422bca999d677f6052efc2.png

另外,我们可以启用java.security.manager来判断程序是否具有调用setAccessible()的权限。默认情况下,内核API和扩展目录的代码具有该权限,而类路径或通过URLClassLoader加载的应用程序不拥有此权限。例如,当我通过cmd编译上述程序时就会报错:

f4a12127d707f3267611a5bade72823e.png

相关阅读

恋吧在以前的博文中分别介绍了基于ASP和PHP的开源CMS程序一览,今天为网友献上18个Java开源CMS系统大餐,以飨网友厚爱。1.InfoGluein

private static void zip(File filein, String basepath, ZipOutputStream out) throws IOException {

FileInputStream in = n

java.lang.Enum.ordinal() 方法返回枚举常量的序数(它在枚举声明,其中初始常量分配的零序位)。【实例】package com.yiibai;

impo

当使用继承这个特性时,程序是如何执行的;继承的初始化顺序1.初始化父类再初始子类2.先执行初始化对象中属性,再执行构造方法中的初始

java获取获得Timestamp类型的当前系统时间。方法1: Timestampd = newTimestamp(System.currentTimeMillis()); 方法2: Datedate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_756271.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔Linux301重定向,宝塔面板如何做网站301重定向跳转

网站301重定向对于我们日后做SEO还是挺重要的,它是指是一条对网站浏览器的指令,来显示浏览器被要求显示的不同的URL,当一个网页经历过其URL的最后一次变化以后时使用。一个永久定向是一种服务器端的重定向,能够被搜索引擎蜘蛛适当…

服务器运行堵塞 负载%100,小白站长如何快速了解网站服务器的运行状况

我们的网站服务器预装系统:CentOS Linux 7.6.1810 (Core)。对于小白站长来讲,因为宝塔管理面板是现在非常流行的一款免费的Windows/Linux管理应用,所以服务器安装这个应用,并安装Nginx -Tengine2.2.3运行环境,其可视化操作界面&am…

php课设源代码网站,php精品课程教学网站在线发布系统

功能需求3.3.1 学生部分1:课程展台:为学生提供课程操作平台。1) 课程简介:显示课程的基本情况的介绍;2) 教学大纲:显示课程的教学大纲内容;3) 授课计划:显示课程的授课计划;4) 备课教…

linux保险箱软件,360保险箱的保护功能 - 不怕盗号木马 奇虎360保险箱抢鲜试用(组图)_Linux安全_Linux公社-Linux系统门户网站...

360保险箱的保护功能二、360保险箱的保护功能保护功能是360保险箱的主要功能,在保护功能下共有“安全启动”、“正在保护”、“保护历史”三个标签。在安全启动这一项上,对应的程序类型有“聊天工具”、“网络游戏”、“网络银行”三种类型。其中聊天工具…

论文网站

从cvchina上看到的,转载自demonstrate 的 blog 自己稍作补充。这里搜集了一些常见的和 machine learning 相关的网站,按照 topic 来分。 Active Learning http://active-learning.net/,这里包括了关于Active Learning理论以及应用的一些文章&…

网站服务器保存多久,云服务器保存多久

云服务器保存多久 内容精选换一换符合条件的华为云弹性云服务器,均可享受不超过 30 天的赠送时长奖励。“备案多久送多久”具体规则如下:您办理备案的须为包年/包月计费的华为云弹性云服务器,且每台弹性云服务器仅限享受本规则规定的赠送时长…

服务器后台设计与大型网站设计,「大型网站架构设计」—— 前言

嘿,笔者的个人博客已经孵化完成啦🐣,欢迎大家来逛逛。以后的文章也会在博客进行首发,快来关注我吧,我们继续一起探讨技术一同进步~本文主要是笔者对《大型网站技术架构》一书的总结归纳。主要通过两种方式展现&#xf…

JSP网站开发基础总结《九》

本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻松的完成之前的那个功能…

Jenkins 传统网站更新和CI/CD概念

门户网站传统部署流程 基于线上CentOS服务器,构建了一套LAMP(LNMP)PHP WEB环境,发布了Discuz门户网站代码,通过浏览器访问WEB网站,如图所示: [rootlocalhost ~]# yum install httpd php php-de…

Jenkins 更新网站静态文件

要想去更新网站必须先创建新的任务,任务名写上网站的名字。 现在去更新静态的logo图片是不需要编译的,所以这里不会用到创建maven项目,这里选择构建自由风格的软件项目(无需使用make ant maven去编译)。 创建好任务之…

Docker Dockefile制作nginx php镜像搭建Wordpress网站

这里的NGINX PHP镜像需要自己构建,mysql 5.7使用官方镜像即可 前端项目镜像构建与部署:Nginx [rootlocalhost _data]# cd /nginx/[rootlocalhost _data]# cd /nginx/ [rootlocalhost nginx]# ls Dockerfile nginx-1.15.5.tar.gz nginx.conf php.conf…

大型网站系统架构演化之路

前言 一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业 务功能的扩展逐渐演变完善的,在这个过程中,开发模式、…

私藏的18个黑科技网站,想找什么软件就找什么软件!!!

要说现在啊,我们使用频率最高的设备是啥,那一定是手机啊,几乎不离身,没了它,生活就索然无味啊😪,除了手机,对我来说,排在第二位的就是电脑了。 那么使用手机和电脑&#…

Apache搭建http网站服务器入门教程

Apache搭建http网站服务器入门教程 准备工具 一台带有Linux系统的主机,这里使用CentOS 7.1 64位系统一个备案过的域名,这里使用www.hellopage.cn一台可以访问网络的pc,这里使用的Win7_pro_sp1步骤 1.解析域名 在域名管理控制台添加对主机ip的…

dump分析工具_工作6年自学走来,私藏的,调优工具/技术网站

其实很多程序员最头疼的事情,就是找学习资料或面试题,我这里,就给大家推荐一些,我赞了6年的优质技术网站,都是我精心挑选的,涵盖:4个算法网站,7个调优排错工具网站,都是大…

浏览器进不去网站解决方案

1.设置internet选项->安全->受信任站点,将该网站添加进去 2.可能是设置了代理,所以要去掉: 3.再不行我也不知道了 转载于:https://www.cnblogs.com/miaoying/p/5664466.html

图片网站源码_做好网站优化必须要知道的几个技巧

网站营销已经成为现在很多企业的营销手段了,而网站权重最高最重要的就是首页,一个完整的网站就是通过一个一个的页面组成的,我们在做网站优化的时候就会涉及到每一个页面,虽然网站优化的时候涉及到的知识比较简单但是要做好还是非…

【软件架构系列】一步一步构建大型网站

1 概述 软件架构是一门学问,并且是一门很深邃的学问,从本篇文章开始,我们就来聊聊架构,所用到的主流语言为.NET、Java和php。本篇文章作为架构的开篇文章,主要从广度上叙述软件架构的发展与演变,从软件架…

php 风水起名网站源代码_对金融网站漏洞检测的过程分享

天气越来越凉爽,在对客户网站代码进行渗透测试,漏洞测试的同时我们安全渗透技术要对客户的网站源代码进行全方位的安全检测与审计,只有真正的了解网站,才能更好的去渗透测试,发现网站存在的漏洞,尽可能的让客户的网站在上线之前,安全防护做到最极致.在后期的网站,平台快速发展过…

传输层 使用Web代理访问网站

代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需…