我使用asp.net mvc -5 web应用程序构建面向公众的网站。现在该网站是公开的,因此无需提供https
。但我有一个联系我们表格,用户可以在其中提交消息以及他们的姓名,电子邮件和/或电话号码。所以这些信息可能会被认为是某种方式的敏感信息。但我不想只为这个表单实现安全证书。所以我的问题是,如果他们是一种方法来确保联系我们表单提交而不使用https
?手动加密等等解密提交的表格?
答案 0 :(得分:0)
您可以在客户端实现某种加密。有关可能有用的库,请参阅https://gist.github.com/jo/8619441。
您需要提出一种在客户端和服务器之间共享密钥的方法,以及在服务器端实现解密。
答案 1 :(得分:-1)
您可以在客户端上使用此lib进行RSA加密 https://github.com/travist/jsencrypt 只需生成Public \ Private密钥对,将公钥插入网页(不要插入私钥!),在客户端加密:
var encrypt = new JSEncrypt();
encrypt.setPublicKey(yourpublickeyvariable);
var encrypteddata = encrypt.encrypt(datatosend);
其中datatosend只是你的param \值的串联(除以在服务器上拆分的某个字符)
然后在服务器上,您可以使用RSACryptoServiceProvider来解密数据
答案 2 :(得分:-1)
要安全地发送联系人,需要两件事:
因此,当然,您可以使用javascript加密数据并将其加密发送到您的服务器,但无法安全地执行此操作:
您首先需要一种验证服务器的方法。 HTTPS使用证书颁发机构的概念来实现。它并不完美,但总比没有好。
如果您不想仅使用https 表单,那就可以了:只需将它用于整个网站! 然后,您可以安全地发送数据,保护访问者的隐私,防止ISP在您的网站中注入广告,如果您使用http2,甚至比http更快。