问题标签 [java-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 是否可以强制 JVM 检查每个 jar 是否必须签名?
是否可以强制 JVM 检查加载到类加载器上的每个 JAR 是否已签名?
我期望的行为是:如果签名错误或jar文件未签名,则JVM崩溃,否则程序运行顺利。
java - 可以通过 Java Exceptions 暴露敏感信息吗?
Exceptions
当信任边界交叉时,是否可以通过 Java 公开敏感的应用程序或系统信息?
我的意思是,不仅在理论上,而且如果在实际环境中发生这种情况。
例如java.io.FileNotFoundException
,可能会告诉调用者我的应用程序的文件系统结构等。
java.util.ConcurrentModificationException
可能会提供有关我的应用程序的非线程安全类的信息。
这种情况是否可以通过以下两种方式处理?
使用
Sysouts
(仅带有自定义消息)而不是throwing exceptions
应该由其他人访问的代码?如果强制抛出异常,请清理您的消息,然后抛出异常
我还想知道第 2 点是否完全可以避免,并且不会有任何强制情况抛出异常。
我的问题不是关于任何特定的应用程序,而是一般的编程实践(在大型企业中需要应用程序间通信,如两家不同的银行等)。
java - 非最终公共静态和非最终公共实例字段在安全性方面的区别?
我正在通过这个链接,OBJ10-J。不要使用公共静态非最终字段,它说,
客户端代码可以轻松访问公共静态字段,因为安全管理器不会检查对此类字段的访问。
他们实际上是什么意思?即从安全管理器中逃脱是什么意思?
如果他们只是说它是因为字段是非最终的,public
那么为什么非最终的public
实例字段与它们的static
对应字段不同?(就代码安全而言)
我已经通过这个问题并且没有看到任何关于安全性的提及,为什么静态变量被认为是邪恶的
public
类的public static
字段可以从任何地方访问,所以public
实例字段也可以访问,那么区别在哪里?为什么非最终 public
实例字段不是安全问题,而是存在static
?
java - 使 MessageDigest 和 Cipher 等效于 java.security.Signature
我想使用 RSA 作为密码算法和 SHA-1 作为哈希函数来实现我自己的签名函数,为此我实现了这两个函数:
然后当我使用这些函数时,我总是得到 false 作为结果,这意味着我的函数不能正常工作:
websphere - WebSphere Java 安全问题:
5我之前没有在 Websphere 上工作过,现在遇到了安全问题。
- 我在 WebSphere 中部署了一个 War 文件。路径:C:\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\ip-0AC30DDBNode01Cell\DMS_war.ear
- 在 UI 中,当我们单击特定按钮时,它会加载一个 JSP 文件,该文件又会尝试读取一个 xml 文件(存储在 WEB-INF/classes/mcc.xml 中)。
- jsp 文件无法读取 xml 文件。
请帮助如何添加安全性/权限 WebSphere。另外我不确定我们必须在哪个文件中执行此操作。(app.policy,java.policy,was.policy)
日志
com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: 在应用程序 DMS_war 中的 servlet /awc/pcmgr/pcmgr.jsp 的服务方法之一中创建了未捕获的异常。异常创建:java.security.AccessControlException:访问被拒绝(java.io.FilePermission C:\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\ip-0AC30DDBNode01Cell\DMS_war.ear\DMS.war\WEB-INF\classes\ mcc.xml 读取) 在 java.security.AccessController.checkPermission(AccessController.java:108) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.SecurityManager.checkRead(SecurityManager.java:871)
到目前为止,我尝试了一切,这是最新的was.policy文件。(位置:META-INF/)
更新:这是现有代码读取 XML 文件的方式
谢谢
java - 如果我包含签名,是否可以跳过其他真实性步骤?
我正在使用这个:
然后连接两个字节数组。基本上这应该足以防止任何类型的数据损坏,无论是有意的还是无意的。
最终,事物将在 UDP 数据包中传输,因此我无法保证完整性。但在正常操作中,我真的不期待很多这些。
我能想到包含另一个更便宜的整个哈希的唯一原因是即使在必须检查签名之前也能够丢弃(意外)损坏的数据包。
我想不出任何其他原因……你能吗?
编辑:
更多的上下文。用例明智,我只是在探索。基本思想是找出 UDP 中的加密文件传输。不一定是因为它很有意义,而是因为我可以,而且我已经看到了基于 UDP 的文件传输,我想弄清楚这方面的具体问题。
在我目前的情况下,双方的公钥都是双方都知道的。我在想这应该足以启动一个会话:
这两个可能只是用对方的公钥加密,req/res 可能包含一个 nonce 和一个时间戳以避免重放攻击。
java - 我在哪里可以下载 com.sun.security.* 包?
下载com.sun库
这就是我正在使用的代码,它需要必要的库,我在哪里可以下载它们?我在谷歌上搜索但找不到。
java - 我可以更改 JWS 应用程序的 disabledAlgorithms 吗?
可能重复:JNLP 中的 java.security.properties
我们有一个桌面应用程序,我们开始使用 Java WebStart。从 JDK 1.8.71 开始,MD5 现在禁用 X509 证书验证. 不幸的是,我们无法更改我们正在使用的证书。
解决方法是更改 java.security 文件 (jre/lib/security/java.security) 以使“jdk.certpath.disabledAlgorithms”不再包含 MD5,但这绝对是不可能的,因为我们无权访问客户端计算机。我们尝试在 JNLP 文件中设置属性(不起作用)并调用:
上面的代码适用于本地启动的 JAR,但不适用于 JNLP。知道这是否可行吗?我找不到任何关于 JNLP 可编辑哪些安全属性的文档。
java - “PKIX 路径构建失败:无法找到请求目标的有效证书路径”仅在发布版本中
这个问题有点棘手。我试图通过 LDAPS 将我的 war 文件连接到 Active Directory。在 IntelliJ IDEA 的调试模式下运行时,代码运行良好。
当我在同一台或不同的机器上安装战争文件时,我面临这个错误。
证书是自签名的。我已在 中添加 CA.crt,在truststore.jks
LDAP.cer 中添加cacerts
。我还尝试添加“jssecacerts”,但结果相同。
注意:我正在使用 Apache Shiro 框架。
如何避免这个错误?为什么它没有进入调试模式?
java - 通过 RMI 发送 javax.security.auth.Subject 对象时遇到 NullPointerException
我正在开发一个客户端-服务器系统,用户使用 RMI(通过 SSL)进行身份验证。
客户端调用 LoginInf.login() 方法:
而在服务器上,LoginImpl.login() 方法实现为:
但是,在客户端,执行 LoginIntf.login() 方法后,我得到 NullPointerException:
即使没有将返回的 Subject 对象存储在局部变量中并访问它,我也得到了 NPE。
我无法弄清楚NPE的原因。我不相信它与权限相关,因为我处于 DEV 阶段并已在我的策略文件中授予 AllPermission:
我知道 javax.security.auth.Subject 实现了 Serializable,所以通过 RMI 发送它应该不是问题。
任何帮助将非常感激。提前致谢!