我有这个登录网页,我正在使用PrimeFaces进行开发。
因此,当我输入密码并通过网络提交时,我的firebug(Firefox扩展程序)实际上可以用明文捕获我的密码。这意味着我的密码是通过网络以明文形式传输的。
如果我错了,请纠正我。那么当我点击提交按钮时,怎么不让密码不清楚?
答案 0 :(得分:2)
通过启用HTTPS(即TLS for HTTP),基本上是较新版本的SSL,您发送的数据将被加密。这可以通过让服务器和客户端在发送任何数据之前协商加密方法并执行密钥交换来实现。
此外,您不希望哈希密码客户端,因为这意味着您基本上将密码存储在纯文本中。但是,在服务器上,您可能希望对密码进行哈希处理和加密,这意味着您首先要向其添加随机 salt ,然后可以使用用户名和密码进行存储,然后进行哈希处理整个事情 - 哈希(密码+盐)。散列是为了确保您不在服务器上以明文形式存储密码,并且确保没有人能够看到重复使用的密码,以及抵御彩虹表攻击。
答案 1 :(得分:0)
如果您的应用程序的URL与Web服务器建立SSL连接,则包括密码在内的任何信息都将以加密文本传输,而不是纯文本。如果它不是SSL,那么您可以尝试在发送密码之前在客户端加密密码。
答案 2 :(得分:-2)
基本上,您需要在客户端加密密码,然后再将发送到服务器。然后,将加密的密码发送到服务器。有关加密密码客户端的简单解决方案,请查看散列。
或者为了更加安全,请参阅OAuth