Tag: 安全

与其他编程语言相比,为什么Java是安全的?

Java供应商和社区称“Java比其他语言更安全” 。 但我想知道怎么做? 如果我们看看Java和.Net中的编程,它们看起来很相似。 .net编程中涉及的步骤 单击以了解更多信息 写.net程序。 将代码编译为MSIL (编译将源代码转换为Microsoft中间语言(MSIL)并生成所需的元数据)。 将MSIL编译为本机代码 (在执行时,实时(JIT)编译器将MSIL转换为本机代码。在此编译期间,代码必须通过validation过程,该过程检查MSIL和元数据以查明代码是否可以被确定为类型安全)。 运行代码 (公共语言运行库提供了允许执行的基础结构和可在执行期间使用的服务)。 java编程中涉及的步骤 单击以了解更多信息 编写Java程序 编译Java程序 (Java编译器将java源代码转换为.class文件,这是一个字节代码) 程序通过JVM加载到内存中 (JVM将.class文件加载到内存中进行字节码validation并以机器语言转换.clsss文件) Java程序的执行 (无论我们在Java程序中编写什么动作,JVM通过解释字节码来执行它们。如果我们谈论旧的JVM,它们很慢,一次执行和解释一个字节码。现代JVM使用JIT编译单元我们甚至调用即时编译)。 如果我们看两种语言中的步骤几乎相同,那么“为什么Java与其他语言相比更安全?”

在Java中反序列化不受信任的数据有什么安全影响?

反序列化不受信任的数据是否安全,只要我的代码不对反序列化对象的状态或类进行任何假设,或者仅仅反序列化的行为是否会导致不希望的操作? (威胁模型:攻击者可以自由修改序列化数据,但这就是他所能做的)

JBoss AS 7.1 – datasource如何加密密码

在JBoss AS 5中,我在* -ds.xml中定义了一个数据源,但是将用户名/加密密码放在* -jboss-beans.xml中。 现在在JBoss AS 7.1中,数据源在standalone.xml或domain.xml中定义。 我在哪里将加密密码放在AS 7.1中? 换句话说,如何在AS 7中加密和保护明确的密码?

如何在Java中为现有私钥添加密码

假设我使用openssl创建了以前创建的私钥,但我决定不使用密码来保护它: —–BEGIN RSA PRIVATE KEY—– BASE64 ENCODED DATA —–END RSA PRIVATE KEY—– 但后来我意识到我想保护它。 我知道如何使用openssl保护它,但我需要用Java来实现它。 可能吗 ?

javax.crypto.Cipher为RSA使用了哪个填充

我需要通过RSA解密消息,以便通过不安全的通道发送消息,但我害怕Padding Oracle Attack 。 因此我已经问过以下问题: 如何validationRSA加密消息的完整性? 如何使用javax.crypto.Cipher确保RSA密码的消息完整性 像第一个问题中建议的那样, 但是,由于您使用的是高级加密库,因此您不必担心这一点。 该图书馆的作者应该照顾它。 我不应该考虑。 据我所知, PKCS#1 v1.5的RSA实现容易受到Padding Oracale Attack ,因此OAEP不是(假设它已正确实现) 因此,我想知道Java 7的javax.crypt.Cipher使用了哪个填充实现

使用Java进行SHA2密码存储

我正在尝试进行XML-RPC调用,该调用需要对特定字符串进行HmacSHA-256哈希处理。 我目前正在使用带有以下代码的Jasypt库: StandardPBEStringEncryptor sha256 = new StandardPBEStringEncryptor(); sha256.setPassword(key); sha256.setAlgorithm(“PBEWithHmacSHA2”); 在尝试使用sha256.encrypt(string)时出现此错误: 线程“main”中的exceptionorg.jasypt.exceptions.EncryptionInitializationException:java.security.NoSuchAlgorithmException:PBEWithHmacAndSHA256 SecretKeyFactory不可用 在org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:597) 在org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:488) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:541) 在nysenateapi.XmlRpc.main(XmlRpc.java:52) 引起:java.security.NoSuchAlgorithmException:PBEWithHmacAndSHA256 SecretKeyFactory不可用 在javax.crypto.SecretKeyFactory。(DashoA13 * ..) 在javax.crypto.SecretKeyFactory.getInstance(DashoA13 * ..) at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:584) ……还有3个 我下载了JCE Cryptography扩展并将jar放在我的buildpath中,但这似乎没有做任何事情。 我尝试在上面的setAlgorithm中使用了许多组合,包括“PBE”,“PBEWithSha”(1 | 2 | 128 | 256)?,“PBEWithHmacSha”等。 我也尝试过使用BouncyCastle,但我也没有运气。 任何帮助或指导赞赏!

再次保护jsp页面xss

我想保护我的网站formsxss,我想确保我的所有数据都是正确和一致的,所以我不想允许向我的数据库添加任何脚本,这是因为我的数据可能被其他Web服务使用,所以我想确保我的数据是正确的,不会给别人带来任何问题。 我想只在输入数据时进行validation,而不是在输出中进行validation,因此我只进行一次validation,并且我将确保我的数据库中不存在任何脚本。 编辑 :请检查我添加的最后一条评论。

Java中的Diffie-Hellman密钥交换

我正在开发一个Java项目,涉及通过不安全的渠道发送敏感数据。 我需要知道如何使用其库在Java中实现Diffie Hellman密钥交换(DHKE)。 我知道关于它的所有加密理论所以不需要详细说明,我只需要一个非常基本的实现,所以我可以让2个程序共享一个密钥。 我从java2s.com获得了示例,但它并不完整: import java.math.BigInteger; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.SecureRandom; import javax.crypto.spec.DHParameterSpec; import javax.crypto.spec.DHPublicKeySpec; public class Main { public final static int pValue = 47; public final static int gValue = 71; public final static int XaValue = 9; public final static int XbValue = 14; public static void main(String[] […]

如何使用自签名证书在我签名的jar文件中设置发布者名称?

我编译了我的applet,创建了一个jar文件,用keytool生成了一个密钥库db,用jarsigner签署了jar,并用keytool导出了公钥证书。 现在,当我在浏览器中运行我的小程序时它确实有效,在提示我之后我是否确定要运行它。 问题是它在框中说“发布者:未知”。 无论如何我可以将其设置为我的别名,因为我编写了applet?

antMatchers Spring Security模式,具有可更改的URL用户ID

我很长一段时间都在寻找答案但却找不到任何有效的方法 在我的rest服务中,我保留了一些function:/ account / {id} / download我想在SecurityConfig java文件中设置access ROLE,只有ROLE_TOKENSAVED用户可以访问这个url 当{id}可更改时,模式应该如何? 我尝试了一些正则表达式模式,但没有任何工作,我想要的,这是我的一些尝试: 1. antMatchers(“account/**/download”).access(somerolehere) 2. antMatchers(“account/\\d/download”).access(somerolehere) 3. antMatchers(“account/[\\d]/download”).access(somerolehere) 在此先感谢您的服务:) 编辑: @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(“/admin**”).access(“hasRole(‘ROLE_ADMIN’)”) .antMatchers(“/account*//**”).access(“hasRole(‘ROLE_USER’) or hasRole(‘ROLE_ADMIN’)”) .antMatchers(“/account/\\d+/download”).access(“hasRole(‘ROLE_TOKENSAVED’)”) .antMatchers(“/user**”).permitAll() //othercode… }