Asp.net 不使用https保护我的数据
我使用asp.NETMVC-5Web应用程序构建了一个面向公众的网站。现在,该网站是公开的,因此不需要提供Asp.net 不使用https保护我的数据,asp.net,.net,asp.net-mvc,https,asp.net-mvc-5,Asp.net,.net,Asp.net Mvc,Https,Asp.net Mvc 5,我使用asp.NETMVC-5Web应用程序构建了一个面向公众的网站。现在,该网站是公开的,因此不需要提供https。但是我有一个联系我们的表单,用户可以在表单中提交一条消息以及他们的姓名、电子邮件和/或电话号码。所以这些信息在某种程度上可能被认为是敏感的。但是我不想只为此表单实现安全证书。因此,我的问题是,他们是否是一种在不使用https的情况下保护联系我们表单提交的方法?例如手动加密和解密提交的表单?您可以在客户端实现某种加密。请参阅,以获取有帮助的库 您需要想出一种在客户机和服务器之间共享
https
。但是我有一个联系我们的表单,用户可以在表单中提交一条消息以及他们的姓名、电子邮件和/或电话号码。所以这些信息在某种程度上可能被认为是敏感的。但是我不想只为此表单实现安全证书。因此,我的问题是,他们是否是一种在不使用https
的情况下保护联系我们表单提交的方法?例如手动加密和解密提交的表单?您可以在客户端实现某种加密。请参阅,以获取有帮助的库
您需要想出一种在客户机和服务器之间共享密钥的方法,并在服务器端实现解密。您可以在客户机上使用此库进行RSA加密 只需生成公钥\私钥对,将公钥插入网页(不要插入私钥!),在客户端加密:
var encrypt = new JSEncrypt();
encrypt.setPublicKey(yourpublickeyvariable);
var encrypteddata = encrypt.encrypt(datatosend);
其中datatosend只是param\值的串联(除以要在服务器上拆分的某个字符)
然后在服务器上,您可以使用RSACryptServiceProvider对数据进行解密要安全地发送联系人,需要两件事:
- 在发送数据之前对数据进行加密,加密方式只有您的服务器才能解密
- 将其发送到您的服务器
然后,您可以安全地发送数据,保护访问者的隐私,防止ISP在您的网站中插入广告,如果您使用http2,甚至比http更快。最后,接受冲击并实现HTTPS可能比您找到的任何其他替代方案都要简单和直接得多。请参阅您无法做到这一点。HTTPS不仅仅是加密,它还涉及身份验证。@Tom我明白你的意思,有没有某种密钥交换方法可以在某种程度上确保真实性?@Tom实现HTTPS将比我想象的所有方法都简单。是的。这并不是那么难:)如果你想正确使用它,在整个网站上使用https,它将更容易、更安全、更不容易出错。(而且,如果你必须添加更多的表单,它们也将受到保护!)这将是不安全的:公钥将使用http发送,因此黑客可以用自己的公钥替换它。那又怎样?你读过《凤凰社》吗?如果没有身份验证,黑客只需打开表单并发布,他不需要密钥就可以做到这一点。问题是如何保护用户数据,以便只有服务器才能读取数据,而不是如何确保“特定”用户发布数据。对于这个场景,使用auth。我知道。你的解决方案是错误的。使用您的解决方案,任何人都可以用自己的密钥替换您的PublicKeyVariable,服务器将接收垃圾,黑客可以解密数据。您需要能够证明您的PublicKeyVariable是您谈话的服务器的公钥,而不是陌生人的公钥。https与CA系统一起提供帮助。>以只有服务器才能解密的方式发送数据之前对数据进行加密-这不是真的。为此,应该使用非对称加密。您认为HTTPS从一开始是如何工作的?非对称加密并不能解决问题(仅供参考,HTTPS使用对称和非对称加密)。非对称加密不能证明您用来加密的密钥是正确的。它不验证密钥。是的。