限制java只执行签名的jar?

2024-01-05

Java jar 可以使用 JDK jarsigner 工具进行签名。这与策略工具结合使用,似乎只允许您在运行时向 jar 添加权限。我想要一个默认的“撤销运行访问权限”。是否有可能让java以这样的方式进行白名单,只允许运行由一组特定证书签名的jar文件?


据我了解,这是您可以控制的计算机上。使用

 java -Djava.security.manager YourApplication

启动应用程序时。这将安装默认的安全管理器,可以通过以下方式进行配置政策文件 http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html。策略文件允许配置每个签名者或每个代码库的权限

  grant signedBy "me" {
      permission java.io.FilePermission "/home/me/*", "read,write";
  };

在各种可能的权限之间,我目前没有看到“完全运行”的权限,但似乎您可以完全禁用网络和文件系统访问。

如果您有可能运行自己的外部应用程序作为决策者(启动或不启动),您可以验证代码中的签名为已经讨论过了 https://stackoverflow.com/questions/1374170/how-to-verify-a-jar-signed-with-jarsigner-programmatically.

另外,您可以使用 -verify 开关编写 jarsigner 的包装器,如文档所示here http://docs.oracle.com/javase/tutorial/security/toolfilex/rstep2.html:

jarsigner -verify -keystore mystore hackerApplication.jar 

并使用一些类似 bash 的包装器捕获输出中的“smk”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制java只执行签名的jar? 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • ASP.NET 日志记录 - 最佳实践 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Symfony 4,主义,getResult和getArrayResult和getScalarResult返回相同的结构结果

    从 symfony 4 开始 我创建了一个示例存储库类 在这个课程中 我创建了一个方法来获取所有电子邮件用户的列表 我想要一个像这样的数组结构 array email1 email2 email3 但通过 getResult 我得到了一个多
  • 如何在 TypeScript 中将类型重新导出为全局类型

    我希望有一个可全局访问的接口 在单独的文件中定义 我该怎么做 这是我的globals d ts file import Theme Style from style themes theme types declare global The
  • 我如何判断我的上下文是否仍然有效?

    我现在正在处理一个相当常见的情况 通过网络下载一些数据 然后更新视图以显示它 显然 我想在后台进行 Web 下载 然后更新主 UI 线程上的视图 现在看看我的代码 我有点担心我的 Activity 及其 UI 元素在更新之前被杀死 这是我的
  • 相对日期格式,输出过去的日期?

    我正在考虑使用 NSDateFormatter setDoesRelativeDateFormatting 将日期表示为 今天 或 昨天 我只查看过去的日期 但很好奇我会看到哪些针对英国本地化的选项 Just Today 昨天 或者任何更复
  • Android 蓝牙InputStream实时读取

    我正在开发一个 Android 应用程序 它通过蓝牙接收实时数据并将其绘制在屏幕上 该数据是陀螺仪传感器位置信息 我从定制的 Freescale Kinetis K10 微控制器板 由我自己设计和测试 发送它 对于蓝牙通信 我使用 HC 0
  • 如何在 ASP.NET MVC 中创建 CheckBoxListFor 扩展方法?

    我知道有一个ListBoxForASP NET MVC Html 辅助扩展方法中的扩展方法 但我一直认为复选框列表比列表框更用户友好 有一个非常方便的CheckBoxList旧式 WebForm 中的控制 但显然现在已经不可行了 问题是 为
  • AWS API Gateway - Elastic Beanstalk - 访问受限

    我在 Amazon EB 上有一个 NodeJS API 在 API Gateway 上有一个 API API Gateway 配置为 EB 的代理 我可以毫无问题地调用我的 API 它正在工作 但我不知道如何管理安全性 实际上 如果我使用
  • 在Python中任意时间捕获用户输入

    当用户在控制台中输入内容时 有没有办法向 python 模块发送中断 例如 如果我正在运行无限 while 循环 我可以用 try except for KeyboardInterrupt 包围它 然后在 except 块中执行我需要执行的
  • IIS Express Visual Studio 集成 - 更改站点名称

    我刚刚开始将 Visual Studio 2010 SP1 与 IIS Express 一起使用 当 Visual Studio 启动 IIS Express 时 它会指定用于启动 IIS Express 的 站点 的名称 该网站的名称似乎
  • 您如何管理开发、测试和生产中的数据库?

    我很难找到有关如何在开发 测试和生产服务器之间管理数据库模式和数据的好示例 这是我们的设置 每个开发人员都有一个运行我们的应用程序和 MySQL 数据库的虚拟机 这是他们的个人沙箱 可以为所欲为 目前 开发人员将对 SQL 架构进行更改 并
  • 将 ncurses 静态链接到程序

    我在将 ncurses 静态链接到我的程序之一时遇到一些问题 这是一个非常简单的示例程序 include
  • 无法解析符号:FusedLocationProviderClient。使用的 Google Play 服务版本为 11.0.1

    无法解析符号 FusedLocationProviderClient Google Play服务版本使用11 0 1 代码 while 声明 private FusedLocationProviderClient mfusedLocatio
  • 将 UIImage 分配到内存并释放它的正确方法是什么

    使用 Instruments 我不断发现 UIImage 内存泄漏 我认为我正在正确分配和释放内存 Instruments 中泄漏的对象被描述为 NSConcreteData 以下是分配和释放 UIImage 的正确方法吗 UIImage
  • PyQt:为什么新窗口打开后立即关闭[重复]

    这个问题在这里已经有答案了 我有一个主窗口 我想在按下按钮时打开另一个窗口 不是对话框 我的问题是新窗口打开后几乎立即关闭 我已阅读可用的文章 并尝试实施解决方案 但似乎没有运气 这是我的整个代码 import sys from PyQt4
  • 普通 ArrayList Linq c# 2 语法(需要转换)

    这个问题对我来说纯粹是学术性的 是我在这里回答的问题的衍生问题 从数组列表中检索具有特定元素值的对象 https stackoverflow com questions 19469945 retrieve object from an ar
  • 阻止提交 HTML 表单字段

    我想以编程方式允许或隐藏在 HTML5 表单中提交的表单字段 我以为我可以设置它的 CSSdisplay归因于none 但是 它仍然被提交 只是看不到 我是否可以设置另一个属性 而不是从 HTML5 文档中完全删除该元素 简单设定disab
  • 如何从 AWS Lambda (Node.js) 中的处理程序调用 module.exports

    AWS 中是这么说的 函数中的 module name export 值 例如 index handler 调用index js中的exports handler 它正确地调用了这个函数 exports handler username p
  • ol.interaction.Select 在 ol.source.VectorTile 上给出错误

    我试图在选择 VectorTile 图层后更改该功能的样式 但是 第一次触发选择交互时 控制台会报告错误 Uncaught TypeError feature getId is not a function at ol source Vec
  • 限制java只执行签名的jar?

    Java jar 可以使用 JDK jarsigner 工具进行签名 这与策略工具结合使用 似乎只允许您在运行时向 jar 添加权限 我想要一个默认的 撤销运行访问权限 是否有可能让java以这样的方式进行白名单 只允许运行由一组特定证书签