Tag: 安全

Google AppEngine:自定义身份validation

我可以使用Google帐户在AppEngine中validation用户身份的方式非常棒。 但是,我需要使用我的自定义身份validation登录系统 。 我将有一个AppUsers表,带有用户名和加密密码。 我读了一些关于gae会话的内容,但我需要帮助才能启动我的应用安全性。 如何跟踪经过身份validation的用户会话? 设置cookie? 一个初学者。

如何有效地在Java中生成安全的随机字母数字字符串?

如何有效地在Java中生成安全的随机(或伪随机)字母数字字符串?

受保护的URL将未受保护的webapge组件泄露给未经身份validation的用户

我相信通过 + + 和使用实现JSF应用程序的是两种不同的方式! 是吗? 我尝试通过上面的第一种方法(使用 + + )实现但发现使用受保护和未受保护的HTML组件的受保护网页甚至提供了不受保护的资源对未经身份validation的用户。 我需要完全保护URL,以便受保护的URL甚至不会将该网页的任何部分泄露给未经身份validation的用户。 我该怎么做? 并且,使用web.xml的安全实现是一种自我管理的方式来处理安全性吗? 我相信,然后您可以在过滤/捕获每个请求时自定义更细粒度的安全性?

我如何归零java中的密钥?

以下java代码是否足以清除内存中的密钥(将其所有字节值设置为0)? zerorize(SecretKey key) { byte[] rawKey = key.getEncoded(); Arrays.fill(rawKey, (byte) 0); } 换句话说, getEncoded方法是否返回实际键的副本或引用? 如果返回副本,那么如何清除密钥作为安全措施?

keytool – 查看公钥和私钥

我以编程方式创建了类型为jks的Java密钥库(即默认类型)。 它最初是空的,所以我创建了一个DSA证书。 keytool -genkey -alias myCert -v -keystore trivial.keystore 我怎样才能看到公钥和私钥? 即是否有一个命令打印我的证书的私钥? 我只能找到keytool -certreq ,在我的理解中,它打印整个证书: —–BEGIN NEW CERTIFICATE REQUEST—– MIICaTCCAicCAQAwZTELMAkGA1UEBhMCR1IxDzANBgNVBAgTBkdyZWVjZTEPMA0GA1UEBxMGQXRo BQADLwAwLAIUQZbY/3Qq0G26fsBbWiHMbuVd3VICFE+gwtUauYiRbHh0caAtRj3qRTwl —–END NEW CERTIFICATE REQUEST—– 我认为这是整个证书。 如何通过keytool查看私人(或公钥)?

我应该如何清理Java中的数据库输入?

有人可以指点我一个关于安全运行部分来自用户输入的SQL查询的初学者指南吗? 我正在使用Java,但语言中立的指南也很好。 期望的行为是,如果有人在GUI中输入类似的东西 very nice;) DROP TABLE FOO; 数据库应将其视为文字字符串并安全地存储它而不删除任何表。

沙盒JVM可以保护服务器不受信任的来源

在接受和执行上传的,不受信任的代码时,如何保护我的服务器免受恶意活动的影响? 用户应该能够实现我的界面和给定的数据,执行一些计算并返回数据。 不需要I / O操作,当然也没有线程/进程操作或其他操作。 使用java.policy文件可以拒绝所有内容(通过不授予任何内容)。 $ cat test.policy grant { }; 使用此策略文件,未授予的操作将导致安全性exception。 $ cat Print.java public class Print { public static void main(String a[]) throws Exception { System.out.println(System.getProperty(“os.name”)); } } $ javac Print.java $ java -Djava.security.manager -Djava.security.policy==test.policy Print Exception in thread “main” java.security.AccessControlException: access denied (java.util.PropertyPermission os.name read) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) […]

如何在不使用System.console()的情况下从控制台读取密码?

我点击了这个eclipse错误 ,其中System.console()不适用于Java应用程序启动。 我有一个小型Java应用程序,它还需要输入一个只能在IDE中启动的密码。 有没有其他方法可以从控制台安全地读取密码(意味着不在控制台上显示)只使用JDK类? 编辑: 我知道System.in ,但是在控制台中显示输入的字符,因此不安全。 EDIT2: 我还想注意,可以在windows下创建一个批处理文件,或者在项目中的linux / unix下创建一个小的bash脚本。 通过使用系统默认编辑器在eclipse中打开此文件,它将在System.console()可用的新控制台窗口中启动。 这样你就可以在eclipse中启动应用程序。 但是必须首先构建项目,以便存在二进制文件。

使用Java在Mac上存储用户名/密码

我正在用Java编写一个小程序(一个推特客户端),针对Mac OS X.作为其function的一部分,它需要有一个存储推特用户名/​​密码的地方。 自然的地方是mac钥匙串,但我找不到任何访问它的方法。 有没有办法从Java访问mac钥匙串,或者失败了,你建议在哪里存储用户名/密码?

你可以签署一个Java applet但是把它保存在沙箱中(不能让它完全访问用户的计算机)?

由于Oracle的最新更改,我似乎必须签署一个applet,即使我不需要或希望它可以无限制地访问用户的计算机(这就是它当前未签名的原因)。 特别是,我不希望他们为已签名的applet显示警告: 此应用程序将以不受限制的访问方式运行,这可能会使您的计算机和个人信息面临风险。 ……这将吓唬使用它的人。 是否有可能签署一个小程序,但以某种方式标记它说“但继续使用沙箱”? 我签署它的唯一原因是从版本7更新40开始,Oracle进一步增加了用户在运行未签名的applet时必须处理的唠叨。 过去,您可以选中一个表示您信任applet一次的框,这将被记住。 从Update 40开始,它只记得该浏览器会话; 如果您关闭浏览器并稍后返回,则会再次出现警告。 他们还说他们将完全在Java插件的“未来版本”中禁用未签名的applet。