java安全权限_java.security.SecurityPermission

public final class SecurityPermission

此类用于安全权限。SecurityPermission 包含一个名称(也称为“目标名称”),但没有操作列表;可以使用,也可以不使用指定权限。

目标名称就是安全配置参数的名称(见下表)。目前 SecurityPermission 对象可用来保护对 Policy、Security、Provider、Signer 和 Identity 对象的访问。

下表列出了所有可能的 SecurityPermission 目标名称,并提供了权限所允许的操作的简要说明,还讨论了授予代码该权限的风险。

权限目标名称

权限所允许的操作

允许此权限所带来的风险

createAccessControlContext

创建 AccessControlContext

这允许攻击者使用 DomainCombiner 实例化 AccessControlContext。由于为 DomainCombiner 提供了到当前堆栈上的 ProtectionDomains 的引用,所以如果 DomainCombiner 是恶意的,则这样可能会导致隐私泄漏。

getDomainCombiner

获取 AccessControlContext 的 DomainCombiner

这样将允许获取 AccessControlContext 的 DomainCombiner。由于 DomainCombiners 可以包含敏感信息,所以这可能会潜在地导致隐私泄漏。

getPolicy

获取系统级安全策略(具体来说,就是获取当前安装的 Policy 对象)

这将允许通过 getPermissions 调用来查询策略,这样将泄漏授予指定 CodeSource 的权限。虽然暴露策略并不足以危及系统安全,但它确实为恶意代码提供了更多信息,恶意代码可能会使用这些信息更好地锁定攻击目标。明智之举就是不泄漏不必要的信息。

setPolicy

设置系统级安全策略(具体来说,就是设置 Policy 对象)

授予此权限相当危险,因为恶意代码会授予自身成功攻击系统所需的所有必要权限。

createPolicy.{policy type}

从提供者获取 Policy 实现的实例

授予此权限将允许代码获取 Policy 对象。恶意代码可以查询该 Policy 对象,以确定除其自身以外授予了代码哪些权限。

getProperty.{key}

使用指定的密钥获取安全属性

根据已经授予其访问权的特定密钥,代码可以访问安全提供者列表,以及系统级位置和用户安全策略。虽然泄漏此信息并不足以危及系统安全性,但它确实为恶意代码提供了更多信息,恶意代码可能会使用这些信息更好地锁定攻击目标。

setProperty.{key}

使用指定的密钥设置安全属性

这包括设置安全提供者或定义系统级安全策略的位置。有权设置新的安全提供者的恶意代码会设置一个恶意提供者,以盗取诸如加密的私钥之类的保密信息。此外,有权设置系统级安全策略的恶意代码还会将此恶意提供者指向安全策略,授予攻击者成功攻击系统所需的全部必要权限。

insertProvider.{provider name}

使用指定的名称添加一个新的提供者

这会使用户把可能的恶意提供者(例如,泄漏传递给它的私钥的提供者)当作最高优先级的提供者引入。之所以出现这种情况,是因为 Security 对象(它管理已安装的提供者)目前在接触该提供者之前不检查其完整性和真实性。

removeProvider.{provider name}

移除指定的提供者

这可能会更改程序的行为或禁止执行程序的其他部分。如果程序以后请求提供者时该提供者已被移除,则可能导致执行失败。另外,如果程序的其他部分未明确请求已移除的提供者,但是当请求加密服务时通常会选择这一提供者(原因在于其在提供者列表中的位置靠前),这时将另外选择提供者,或者找不到合适的提供者,因而会导致程序失败。

setSystemScope

设置系统标识范围

这会允许攻击者使用不受信任的证书来配置系统标识范围,并因此授权使用这些证书签名的 applet 或应用程序代码享有被系统的原始标识范围所拒绝的特权

setIdentityPublicKey

设置标识的公钥

如果标识被标记为 "trusted"(受信任),这将允许攻击者引入其他不受系统标识范围信任的公钥(例如,它自己的公钥),因此,将授权使用该公钥签名的 applet 或应用程序代码享有在其他情况下将遭受拒绝的特权。

setIdentityInfo

设置标识的常规信息字符串

这将允许攻击者设置对标识的常规信息描述。这会欺骗应用程序使用其他标识而不是本打算使用的标识,或者会阻止应用程序查找特定的标识。

addIdentityCertificate

添加标识证书

这允许攻击者为标识的公钥设置证书。这样将非常危险,因为这会影响整个系统的信任关系。与先前相比,此公钥的受信任范围突然变大。

removeIdentityCertificate

移除标识证书

这允许攻击者移除标识的公钥证书。这样将非常危险,因为这会影响整个系统的信任关系。与先前相比,此公钥的受信任范围突然变得不如以前。

printIdentity

查看主体名称和可选的使用范围,以及在该范围内是否认为它是“受信任”的

输出范围可以是文件名称,在这种情况下它可以传达本机系统信息。例如,此处是一个输出名为 "carol" 标识的示例,在用户的标识数据库中,它被标记为不受信任:

carol[/home/luehe/identitydb.obj][not trusted]

clearProviderProperties.{provider name}

“清除”一个提供者,以使其不再包含用来搜索由提供者实现的服务的属性

这将禁用由该提供者实现的服务搜索。因此,正如 "removeProvider.{provider name}" 权限中所描述的那样,这可能会更改正常利用该提供者的程序的行为或禁止程序的其他部分的执行。

putProviderProperty.{provider name}

设置指定提供者的属性

每种提供者属性都要指定由该提供者实现的特定服务的名称和位置。通过授予此权限,可以让代码将服务规范替换为另外一种,并据此指定另外一种实现。

removeProviderProperty.{provider name}

从指定的提供者移除属性

这将禁用由该提供者实现的服务搜索。由于移除了指定提供者名称和位置的属性,所以无法再访问这些提供者。正如 "removeProvider.{provider name}" 权限中所描述的那样,这可能会更改正常利用该提供者的程序行为或禁止程序其他部分的执行。

getSignerPrivateKey

获取 Signer 的私钥

允许访问私钥是非常危险的;一般认为密钥是用来保守秘密的。否则,代码会使用私钥签署各种文件并声称签名来自 Signer。

setSignerKeyPair

设置 Signer 的密钥对(公钥和私钥)

这将允许攻击者把其他人的(“目标的”)密钥对替换为可能更弱的密钥对(例如,更小密钥大小的密钥对)。这还会允许攻击者侦听目标与其同位体之间加密的通信。目标的同位体可以用目标的“新”公钥包装加密的会话密钥,这将允许攻击者(拥有对应私钥)打开该会话密钥并解密使用该会话密钥加密的通信数据。

构造方法摘要

方法摘要

构造方法详细信息

SecurityPermission

public SecurityPermission(String name)

创建具有指定名称的新 SecurityPermission。此名称是 SecurityPermission 的符号名称。名称的末尾可能有一个星号,星号前有一个 "."(也可能没有),用来表示通配符。

参数:

name - SecurityPermission 的名称

抛出:

SecurityPermission

public SecurityPermission(String name,

String actions)

创建具有指定名称的新 SecurityPermission 对象。此名称是 SecurityPermission 的符号名,且目前不使用操作 String,其应该为 null。

参数:

name - SecurityPermission 的名称

actions - 其应该为 null。

抛出:

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

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

相关文章

Android studio Error occurred during initialization of VM 问题解决

最近开发导入其他Android项目遇见的问题,如下图: 解决办法: 将org.gradle.jvmargs的值该为521(堆内存分配过高导致) 备忘,希望能帮助到大家转载于:https://www.cnblogs.com/yunfang/p/6857096.html

应用程序服务器迁移:从JBoss EE5到Wildfly EE7

几周前,我发布了一个有关从Java EE 5迁移到7的博客 。这主要是关于如何使用新的Java EE 7改进Java EE 5代码。 现在,在本文中,我将对应用程序服务器端的迁移路径进行一些研究。 如果您使用的是Java EE 5,则很有可能正在使用以下服…

滑动窗口限流 java_Spring Boot 的接口限流算法优缺点深度分析

点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家(已修复)下一篇:昨天分享资料不小心把百度网盘深处的秘密泄露了(已修复)转自: loubobooo原文&am…

php置顶文章,zblogphp调用置顶文章的教程

有客户建议,侧栏的热门推荐能不能调用置顶类型的文章,因为本站一直未置顶过文章,所以没考虑过这方面,但是既然有需要就得满足啊,是不?于是乎在网站查看教程,别说还真有一篇,信心博客…

通用网页调用本地应用程序方案(windows平台)

一、更新注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\receiveOutOfArg] "URL Protocol""D:\\LongHaibin\\Learn\\Net\\receiveOutOfArg\\receiveOutOfArg\\bin\\Debug\\receiveOutOfArg.exe" "applicationName" [HKEY_CLAS…

php7有没有使用jit,RegEx不适用于长模式PCRE的JIT编译器堆栈限制 – PHP7

PHP 7引入了PCRE的JIT编译器.它可以影响是否/如何在长输入上执行低效的正则表达式.Error 6 PREG_JIT_STACKLIMIT_ERROR重写正则表达式以提高效率,通常是通过删除无关的捕获组或更加小心量词.作为一种解决方法,您可以禁用JIT.所以你可以使用以下解决方案使其工作:in…

mips j指令_MIPS的基本实现

MIPS核心指令集:指令集概括为3个指令类:存储器访问指令类lw,sw等2. 算术逻辑指令类add,sub等3. 转移指令类beg,J等指令的共同性取指令,送PC值给Memory;根据指令内容读取寄存器内容;除…

腾讯管家去除桌面快捷小图标

找了大半天,原来腾讯管家也可以: 废话不多说,动手实践吧。。。。。 打开电脑管家——电脑诊所——桌面图标——【去掉快捷方式小箭头】 就这样轻松的实现了,赶快试试吧! 转载于:https://www.cnblogs.com/yjq520/p/6858…

apache shiro_Apache Shiro第3部分–密码学

apache shiro除了保护网页和管理访问权限外, Apache Shiro还执行基本的加密任务。 该框架能够: 加密和解密数据, 哈希数据, 生成随机数。 Shiro没有实现任何加密算法。 所有计算都委托给Java密码学扩展(JCE&#xf…

argparse模块_Argparse:一个具体案例教会你python命令行参数解析

问题描述:现有一个用于数据格式转换的py脚本(多转一),执行时通过命令行传入一系列的参数控制其具体运行方式,使满足以下要求:1. 必须传入需要处理的原始数据文件名2. 可以指定输入文件的格式,若没有指定则使用默认值&a…

Eclipse中src/main/resources配置文件启动问题

项目pom文件有做修改如下的时候,还没有进行mvn clean install 启动test项目中的appcontext会 可以手动清空 然后就可以了。 出现如下问题的原因是 配置文件默认输出到target/classes 下 项目启动默认也会找该目录下的配置文件 其实这里pom文件拷贝配置文件只是用于读…

仍然不安全:变成了Java 9功能的Java 6中的主要错误

sun.misc.Unsafe的未来将如何发展? 随着2015年即将结束,我们认为这将是对Java社区过去一年中最热门辩论之一进行尸检的好机会。 通过查看标题,您中的大多数人可能已经开始在口腔中产生酸味并在肠道中产生愤怒的感觉,但是如果您错…

camvid数据集使用方法_使用PyTorch处理CIFAR10数据集并显示

在训练图像分类的时候,我们通常会使用CIFAR10数据集,今天就先写一下如何展示数据集的图片及预处理。第一部分代码,展示原始图像:import numpy as npimport torch#导入内置cifarfrom torchvision.datasets import cifar#预处理模块…

类型之间的相互转换php,php学习之数据类型之间的转换介绍

复制代码 代码如下:/*数据类型之间相互转换* 一种是强制转换* setType(变量,类型); //int,integer,float,double等等。* 这个函数将原变量的类型改变,用var_dump();可以查看变量** 在赋值前使用(类型)的形式,不会改变原变量的类型* $a(int)"123abc";** $变…

rhel 8.2不识别unicode_基于tensorflow 实现端到端的OCR:二代身份证号识别

最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的。本文实现思路主要来源于Xlvector的博客&am…

Lua和C++交互详细总结

转载自:http://www.cnblogs.com/sevenyuan/p/4511808.html 一、Lua堆栈 要理解Lua和C交互,首先要理解Lua堆栈。 简单来说,Lua和C/C语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。 在Lua中,Lua堆栈就是一个struc…

php imagemagick 漏洞,ImageMagick漏洞(CVE-2016-3714)修复方案

关于这个漏洞影响ImageMagick6.9.3-9以前是所有版本,包括ubuntu源中安装的ImageMagick。而官方在6.9.3-9版本中对漏洞进行了不完全的修复。所以,我们不能仅通过更新ImageMagick的版本来杜绝这个漏洞。现在,我们可以通过如下两个方法来暂时规避…

adf开发_ADF BC:创建绑定到业务组件的UI表

adf开发在此示例中,我们将展示如何创建绑定到业务组件的简单UI表(af:table)。 我再次尝试使用简单的标准在网上进行搜索: “如何创建绑定到业务组件ADF 11g的af:table” 我必须承认我没有得到我想要的答案…

java游戏热血江湖,热血江湖源码_附安装教程

释放双眼,带上耳机,听听看~!源码里面可能有联系方式之类的不要相信,反正我在这里已经说过了,你们上当就不管我的事了还有,源码里面的联系方式跟我没关系!教程来了认真看!!&#xff0…

cf 412A

http://codeforces.com/contest/806/problem/A 大意:已知分数x/y,给定p/q,问是否存在a,b使(pa)/(qab)x/y; 一开始用exgcd,算最优不好写,而且数据longlong范围直接炸了;看了一眼题解,居然能二分,…