我正在一个网站上工作,我想提供最安全的沟通,但我不能花太多钱。
关于以下内容:<input type='password' name='password'>
它们通常以传输协议的纯文本形式发送 我只是以每月1欧元的价格提供一些便宜的托管服务而且我无法“负担得起”(关于网站捐赠和安全的重要性)所有子域名的SSL证书,每月8,50欧元。
所以我现在想知道,有什么方法可以防止密码被发送为plain text
?实际上它是以纯文本形式发送并不重要,除了浏览器和服务器之外其他任何人都不应该读取它,但我想这总是可以用纯文本进行。
我也在通过AJAX对输入字段进行实时服务器端验证,并且例如检查密码长度等。所以,即使有意义,我仍然可以访问这些数据。
如果需要,我可以访问HTML,JavaScript / JQuery,PHP,AJAX和更多语言。
答案 0 :(得分:1)
如果您只需要加密来隐藏与窃听者的通信 - 您就不需要SSL。 我认为,SSL和证书的主要特征是身份验证:您的客户知道他们确实正在浏览您的网站(例如,不是某些钓鱼网站)。身份验证还有助于对抗中间人(MitM)攻击者。
如果要隐藏窃听者的密码,请发送一些公钥,然后发送使用此公钥加密的密码。至于你是唯一知道私钥的人,而且你的客户真的收到了你的公钥 - 这应该就足够了。
请注意,上述解决方案不适用于MitM:这样的攻击者只需将发送到客户端的公钥更改为自己的公钥,这样攻击者就可以解密加密的密码(因为他知道私有密码)新公钥的关键)。 如果您使用SSL,则客户端可以验证您的公钥是否真正属于您的公钥(由证书颁发机构签名)。
因此,我建议您搜索如何在JS中实现公钥操作。