Tag: 安全

小程序打印; Applet放弃安全权限; Windows7和Java7

使用Java Liveconnect能够通过applet从浏览器访问打印机,对于访问权限我已经添加了permission java.lang.RuntimePermission “queuePrintJob”; 在C:\Program Files (x86)\Java\jre7\lib\security\java.policy文件中。 但我仍然收到以下警告信息 使用: Java Plug-in 10.9.2.05; JRE版本1.7.0_09-b05 Java HotSpot(TM)客户端VM 但是相同的签名小程序在xp机器上使用java7正常工作。 即使我检查Always allow…. ,它仍然一次又一次地显示警告。 我在堆栈溢出中完全搜索但无法找到正确的修复程序。 任何人都可以建议如何解决这个问题?

找不到Java安全类

启动程序时,会弹出下一个错误 java.lang.NoClassDefFoundError:无法初始化类javax.crypto.SunJCE_b 这意味着这个类缺失虽然我已经手动找到这个类,但是通过jar / ide工作,但是通过服务不能完美地工作。 也许我需要做一些修改? 但是哪个? 提前致谢

安全性:CWE-201:使用openStream安全读取属性文件的正确方法是什么?

我正在努力想出一个由Veracode标记的CWE-201解决方案。 背景: CWE-201:通过已发送数据的信息曝光 信息暴露通过已发送数据弱点ID:201(弱点变量)状态:草案+描述说明摘要通过发送数据意外暴露敏感信息是指数据的传输,这些数据本身既敏感又有助于进一步利用系统通过标准数据通道。 阶段:架构和设计策略:权限分离将系统划分为具有“安全”区域,可以明确地绘制信任边界。 不允许敏感数据超出信任边界,并且在与安全区域外的隔间连接时始终要小心。 确保在系统设计中内置适当的分区,并且分区用于允许并进一步加强权限分离function。 架构师和设计师应该依靠最小特权原则来决定何时使用和删除系统特权。 除了…这对于编码人员意味着什么,我试图找到一些使用java来解决这个问题的实用解决方案。 我能说的是,以下代码将导致veracode标记cwe-201: public void init(URL filePath) { try { load(new BufferedInputStream(filePath.openStream())); } catch (java.io.IOException e) { Log.error(“Could not load server properties file!”, e); } } 更多信息: 阶段:实施确保设计人员validation要求中指定的任何可能敏感数据,以确保其为计算风险或在其他地方减轻。 应删除function不需要的任何信息,以降低开销和发送安全敏感数据的可能性。 阶段:系统配置 设置默认错误消息,以便意外错误不会泄露敏感信息。 我已经完成了系统配置中所述的建议,创建了一个自定义运行时exception,它在这里吞下了IOException …但是Veracode仍然标记它。 这是代码看起来像: public class CWE201Exception extends RuntimeException { private static Logger log = ESAPI.getLogger(CWE201Exception .class.getName()); public […]

如何拒绝来自iframe的网站访问?

我注意到一些网站出于安全原因拒绝从iFrames访问他们的注册和登录页面。 在我看来这是一个好主意。 我想知道为了做到这一点他们需要什么设置,因为我想在我的网站上做同样的事情。 有问题的网站是用Java构建的,可以在Apache Tomcat上运行。 如果有人知道如何做到这一点,那么如果你能分享就会很棒。

在applet中使用GSON库时的reflection权限问题

我正在编写一个进行JSON-RPC调用的Applet。 我正在使用Google JSON库(GSON)将响应JSON转换为类。 Thsi似乎工作得很好但是当我在我的Applet中使用这个代码时,我遇到了一个java.lang.reflect.reflectpermission 。 从我在SO上看到的这个post来看,似乎由于GSON使用Reflection,我不能在Applet中使用它,除非我明确修改了安全策略。 我怎么能绕过这个? 我在我的应用程序中创建了一堆类,并使用Gson.fromJson方法将其Gson.fromJson转换为类。 有没有办法实现相同的function,而无需重写我的一半代码。 (在Java中处理JSON的复杂性似乎属于它自己的联盟​​!) 先谢谢你们。

访问被拒绝(“java.io.FilePermission”“执行”)

我是beginner.it是我写的第一个小程序 我想用applet运行exe应用程序 java代码 package appletexample; import java.io.*; import java.awt.*; import java.applet.Applet; public class Welcome extends Applet { public void init() { String execommand = “C:\\windows\\notepad.exe” ; try { Process proc = Runtime.getRuntime().exec(execommand) ; } catch(IOException ieo) { System.out.println(“Problem starting ” + execommand) ; } } } java.policy.applet grant { permission java.security.AllPermission; }; 我在eclipse中运行此代码Run As->Java Applet工作并打开NotePade但是当Export->Jar […]

如何在Wildfly 8上的Picketbox / Undertow中捕获FailedLoginException以应用CORS

在ContainerResponseFilter的帮助下,我能够将CORS头应用于所有传出的响应,并且使用ExceptionMapper,我可以在所有错误和exception上执行相同的操作, 除了 Picketbox / Undertow应该在Wildfly中抛出的任何与身份validation相关的exception。 无论我尝试什么,我的ExceptionMapper都不会捕获它,因此,前端无法读取401状态,因为响应没有附加CORS头(XHR HTTP状态代码只是变为0)。 我正在使用这个 PBKDF2设置来对MySQL数据库进行身份validation,起初我认为可能因为身份validation是在一个单独的模块中运行的,所以我的应用程序没有捕获它,但即使将所有身份validation代码移到我自​​己的身份之后也是如此应用程序我有同样的问题。 这是我尝试使用错误密码进行身份validation时获得的日志条目(当我根本不发送任何凭据时,我得到一个非常类似的日志条目): 2014-11-29 16:11:08,053 TRACE [org.jboss.security](默认任务-4)PBOX000224:结束getAppConfigurationEntry(PBKDF2DatabaseDomain),AuthInfo:AppConfigurationEntry []:[0] LoginModule类:com.example.myapplication。 security.SaltedDatabaseServerLoginModule ControlFlag:LoginModuleControlFlag:required选项:name = dsJndiName,value = java:/ user name = principalsQuery,value = SELECT Hash FROM account WHERE ID =? name = rolesQuery,value = SELECT Role ,’角色’FROM帐户WHERE account 。 ID =? 2014-11-29 16:11:08,053 TRACE [org.jboss.security](默认任务-4)PBOX000236:开始初始化方法2014-11-29 16:11:08,053 TRACE [org.jboss.security](默认任务-4)PBOX000262:模块选项[dsJndiName:java:/ user,principalsQuery:SELECT Hash FROM […]

Android JWT在签名时解析有效负载/声明

我有一个签名的JWT字符串,我从服务器获得。 我不知道密钥,或者我不想把密钥放在客户端/设备上。 将此站点与我的令牌一起使用时: https : //jwt.io/我得到了所需的结果,它告诉我Header和有效负载信息。 我无法在Android上找到一个能够完成本网站function的库,我已经尝试了所有我能找到的库。 最受认可的是: https : //github.com/jwtk/jjwt 但这给了我一个例外,我不能解析一个签名的令牌,上面的其他网站certificate这是假的。 我使用的另一个资源是: https : //bitbucket.org/b_c/jose4j/wiki/Home 这个至少给了我头条信息,这是我能够得到的最远的信息。 为了给出上下文的原因,有效负载包含到期时间,并且当令牌即将到期时,设备上应该提示用户重新输入其凭据以获取新令牌。 现在这可能看起来像是一种安全威胁,因为黑客可以操纵设备上的令牌,但是服务器检查令牌以确保它是真实的,这就是为什么我不想要设备上的密钥,因为这可以通过黑客,并使整个应用程序易受攻击。

因为签名的jar文件的时间戳支持哪个java版本SHA-256和SHA256withRSA

我在jar文件的签名中有以下条目 Timestamped by “CN=GlobalSign TSA for Advanced – G3 – 001-02, O=GMO GlobalSign KK, C=JP” on Mo Apr 10 11:48:34 UTC 2017 Timestamp digest algorithm: SHA-256 Timestamp signature algorithm: SHA256withRSA, 2048-bit key 我已经发现时间戳消息algoirthm上的SHA-256和时间戳签名算法中的SHA256withRSA在java版本低于1.7.0_76的系统上运行jar文件时会导致问题(jar文件被标记为无符号)。 有人可以告诉我时间戳摘要和时间戳签名支持这两种算法的Java版本吗?

在Java中更改系统属性 – 安全策略文件

在理解Java安全模型时我有些困惑。 在我的${JDK_HOME}/jre/lib/security/java.policy文件中,我可以看到以下条目: grant { // Allows any thread to stop itself using the java.lang.Thread.stop() // method that takes no argument. // Note that this permission is granted by default only to remain // backwards compatible. // It is strongly recommended that you either remove this permission // from this policy file or further restrict it […]