Web表单提交:无法访问客户端加密和源代码

时间:2016-05-21 08:10:28

标签: java forms spring-mvc web encryption-symmetric

我在网站和网站安全方面确实没有经验。

在问题出现之前,让我们解释一下背景:

我创建了一个网页,该网页是一个订单表单X的平台,由某个客户端A填写,其中一些关键字段Y需要加密。然后,Web服务器将向卖家B发送带有X + Y的邮件,以便他可以处理订单。

我做了什么:

我使用Spring MVC创建了一个带有控制器(用Java)和HTML视图模板的表单。本教程对我有所帮助:https://spring.io/guides/gs/handling-form-submission/。当A提交X + Y时,我在Controller中加密Y(使用对称TEA加密)(所以我猜这显然是服务器端),然后通过邮件将其发送给零售商。然后零售商用与解密相同的密钥对其进行解密。

问题:

我希望它非常安全,所以我不想将Y发送到服务器然后对其进行加密,我想在客户端对其进行加密,然后将其发送到控制器。

Javascript客户端是唯一可以做到这一点的解决方案吗?我更喜欢在客户端使用Java来实现,因为我想要的是加密是客户端的,并且包含对任何人隐藏的加密算法的源代码(我猜在HTML和Javascript中不是这种情况)。

因此,对于客户端和隐藏源代码加密,是否可以使用Spring MVC和Java,或者使用Javascript,或者您是否有任何其他建议?

1 个答案:

答案 0 :(得分:0)

如上所述,我不担心人们可以访问加密代码本身,这是您在安全方面最不关心的问题。无论如何,所有常见加密算法都有公开可用的参考实现和规范。现代加密算法的一个主要要求是安全性在于密钥的保密性,而不是在算法本身的保密性中。 (这实际上是对数据加密标准的明确要求,并且适用于所有随后设计的算法)。依靠您使用的加密算法的保密性是一种默默无闻的安全形式,这是一种不好的做法。

这里有一个关于JavaScript中公钥加密的正确讨论: Are there any asymmetric encryption options for JavaScript?