Tag: 安全

这个小程序是否适用于冰茶JRE?

我提到了一个小型演示。 在为HTML中嵌入的Applet设置策略和冰茶JRE用户评论该演示。 他们失败了。 他们拒绝了对applet的许可 (因此将其限制在沙盒中)并且应该看到绿色的“这个applet是沙盒子”页面。 相反,小程序完全失败了,他们看到了小程序应该在的“灰色空间”。 我想说它正在尝试实例化一个与众不同的File对象。 IE Sun / Oracle JRE将允许它没有问题,只在applet尝试创建JFileChooser时抛出安全exception。 OTOH冰茶JRE不允许创建File 。 因此,此代码应该解决该问题。 它会移动创建/添加JEditorPane并在new File(..)调用之前安装第一个“所有其他失败”消息,然后是绿色的“沙盒”页面。 我的问题是。 对于使用Iced Tea JRE的用户,此代码是否“广告化”? 测试它: 访问pscode.org/test/docload/applet-latest.html上的applet 拒绝经过数字签名的代码。 这对于创建测试applet的正确条件非常重要。 观察/报告applet是否加载了绿色的sandbox.html 。 沙箱文档将代表修复错误的“成功”。 同样令人感兴趣的是(可能很少)是可信小程序防御加载演示的主页,它链接到小应用程序页面,小程序中显示的每个HTML文件,以及包含源代码的ZIP存档代码和HTML,以及Ant build.xml,这样你就可以“在家里,孩子们”这样做。 这是新代码。 package org.pscode.eg.docload; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JFileChooser; import java.net.URL; import java.net.MalformedURLException; […]

如何在java中的applet中写入文件?

由于Applet在浏览器中以沙盒模式运行,因此我使用AccessController.doPrivileged来写入文件。 它在Eclipse中运行时写入文件,但在浏览器中访问applet时不写入。 我错过了什么? 这是代码: public class HelloWorld extends Applet { public void paint(Graphics g) { AccessController.doPrivileged(new PrivilegedAction() { public Boolean run() { try { System.out.println(System.getProperty(“user.home”)); String userHome = System.getProperty(“user.home”); FileWriter fw = new FileWriter(userHome + File.separator + “test” + File.separator + “area.txt”); fw.write(“The area is 20m”); fw.flush(); fw.close(); } catch (IOException ioe) { System.err.println(ioe); } […]

如何保护我的java Web应用程序?

我有一个Web应用程序,当用户登录时,他们到达mainjsp.jsp页面。 在此页面中,日期的文本框很少,并根据日期和从另一个下拉列表中选择,提交数据。 这些数据由servlet检索并返回到mainjsp页面。 我担心的是安全问题。 现在,当我复制粘贴mainjsp.jsp页面的URL并将其粘贴到任何浏览器中时,此页面将按原样显示。 我不希望这种情况发生。 我希望用户首先登录,因此我希望我的Web应用程序安全。 我不知道该怎么做。 你能告诉我怎样才能做到这一点? 另外请告诉我如何为Web应用程序中的任何页面实现此目的。 如果用户尚未登录,则用户无法访问任何页面。

使用BouncyCastle API生成CSR

我是Java的安全方面的新手,偶然发现了这个名为bouncycastle的库。 但他们提供的例子和互联网上的例子要求使用 – return new PKCS10CertificationRequest(“SHA256withRSA”, new X500Principal( “CN=Requested Test Certificate”), pair.getPublic(), null, pair.getPrivate() 但是当我使用PKCS10CertificationRequest时,看起来它已被弃用。 所以我开始研究另一种使用CertificationRequest类的方法。 但我真的很困惑,构造函数不采用相同的参数,而是需要CertificationRequestInfo类,我不知道如何填写。 CertificationRequest request = new CertificationRequest(…); 如果有人可以帮我弄清楚如何制作CSR以便我可以将其发送到服务器以获得签名,那将是非常棒的。 谢谢,

在Java中,如何在不生成String对象的情况下从HttpServletRequest标头中提取密码?

处理敏感数据(==密码)的常见Java安全准则建议不要使用String对象来存储数据,而是使用字节或字符数组。 我试图在HttpServlet处理程序中应用此指南。 特别是,我使用类似于基本身份validation的方法,其中凭据在标头中传入(这是一个GET请求,因此没有正文)。 我遇到的问题是,在没有生成String对象的情况下,似乎无法获取头数据,这违反了get-go的准则。 我已经彻底搜索了一个解决方案,但没有找到任何相关的讨论。 有没有人对此问题有任何见解? 注意:这是通过HTTPS进行的,因此这里没有连接安全问题。

尝试使用ESAPI但是获取错误

我正在尝试使用ESAPI.jar为我的Web应用程序提供安全性。基本上我刚开始使用ESAPI.jar。 但问题是我无法使用ESAPI运行一个简单的程序。 小代码片段是: String clean = ESAPI.encoder().canonicalize(“someString”); Randomizer r=ESAPI.randomizer(); System.out.println(r); System.out.println(clean); 我收到此错误: Attempting to load ESAPI.properties via file I/O. Attempting to load ESAPI.properties as resource file via file I/O. Not found in ‘org.owasp.esapi.resources’ directory or file not readable: D:\Eclipse-Workspace\Test\ESAPI.properties Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties Not found in ‘user.home’ (C:\Documents and Settings\user.user) directory: C:\Documents and […]

如何从部署到Websphere 6.1的EJB访问身份validation别名

我需要在EJB中为密钥库提供密码,但我不希望它对开发人员可见。 我的想法是在Websphere Console中创建身份validation别名,然后查找MY_ALIAS并从别名获取密码。 我在以下网站找到了一些与主题相关的讨论: http : //www.coderanch.com/t/79439/Websphere/Authentication 有人知道可以别名吗? 您建议的方法是什么来实现我的目标? 非常感谢你!

更新到JRE 7u21后,Java applet停止工作

一旦JRE更新到7u21,我的Java applet就停止了工作。 简短的摘要: 我得到的例外是:netscape.javascript.JSException和 java.lang.NoClassDefFoundError。 小程序工作正常,直到JRE 7u21。 applet使用Oracle的DeployJava.js嵌入到网页中。 小程序已签名,它使用LiveConnect来触发事件,它通过JNI访问USB和串行端口,它使用来自多个JAR文件的代码。 所有测试的桌面浏览器(Firefox,Chrome,IE8 / 9和Mac上的Safari)都会出现故障。 细节: 我有一个java applet,允许我的网站与USB设备通信。 小程序在过去一年中运作良好。 一旦JRE7更新21发布 – applet停止工作。 applet使用Oracle的DeployJava.js库托管在网页(ASP.NET)中。 它使用LiveConnect将事件提升回我的javascript代码。 我在JRE 7u21上遇到的第一个问题是第一次通过LiveConnect提出事件的例外: netscape.javascript.JSException: JavaScript error while calling “_notify” at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source) at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source) at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source) at .fireJavascriptEvent(Unknown Source) at $1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.asec.easypark.applets.HomeloadingApplet.start(Unknown Source) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown […]

在Java中安全存储密码的最佳实践是什么?

在Java桌面应用程序中存储密码的推荐方法是什么? 我希望用户能够只进入一次credencials而不会再次提示。 在个人项目中,我一直在使用Preferences API,但我认为这与以纯文本(安全性)存储它没有什么不同。 非常感谢 编辑: 非常感谢您的建议。 似乎有些混乱,毫无疑问因为我可能没有把问题弄得很清楚…… 我会给出一个假设的场景: 假设我正在为远程数据库创建一个简单的前端,该数据库使用用户名/密码创建连接字符串。 通常,每次应用程序启动时都会提示用户输入用户名/密码组合。 将密码存储在用户机器中的最佳方法是什么,无需重新输入(在应用程序启动时自动连接)。 一种“记住我”的function(我知道这本身并不是一个很好的做法…) EDIT2: 谢谢大家的回答。 PaŭloEbermann对手头的问题非常有用,Chris Smith的链接很有意思,但我接受了JVerstry的一个,因为密钥库可能是我正在采取的路线。

访问被拒绝(java.net.SocketPermission 127.0.0.1:8080 connect,resolve)

我在位于http:// localhost:8080 / index.html的简单HTML页面上插入了一个Java Applet: Java Applet有一个类似于下面代码的方法: public void PostStuffToServer() { String server = “http://localhost:8080/PostHandler.ashx”; URL u = new URL(server); URLConnection con = u.openConnection(); con.setDoOutput(true); con.getOutputStream().write(stream.toByteArray()); con.connect(); } 当我从JavaScript执行applet代码时,如下所示: obj = document.getElementById(‘applet’); obj.getClipboardImageURL(); 我收到以下错误: 访问被拒绝(java.net.SocketPermission 127.0.0.1:8080 connect,resolve) 似乎Java代码将域localhost解析为其等效的IP地址,因此引发了跨域安全限制。 当我从http://127.0.0.1:8080/index.html执行相同的代码时,它工作正常。 lib.jar文件已签名。 反正有没有避免这个?