我的表单密码是否以明文形式传递?

时间:2020-03-06 14:50:50  来源:igfitidea点击:

这是我的浏览器在登录某个网站时发送的:

POST http://www.some.site/login.php HTTP/1.0
User-Agent: Opera/8.26 (X2000; Linux i686; Z; en)
Host: www.some.site
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en-US,en;q=0.9
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://www.some.site/
Proxy-Connection: close
Content-Length: 123
Content-Type: application/x-www-form-urlencoded

lots_of_stuff=here&e2ad811=my_login_name&e327696=my_password&lots_of_stuff=here

我可以声明任何人都可以嗅探该站点的登录名和密码吗?
也许只是在我的局域网上?
如果是这样(即使仅在LAN上),那么我会感到震惊。我以为使用

<input type="password">

除了使所有字符看起来都像'*'以外,还做了一些其他的事情

p.s.如果重要的话,我玩过netcat(在Linux上)并建立了连接
浏览器<=> netcat(在此处登录)<=>代理<=> remote_site

解决方案

是的,凭据以明文形式传递,任何听到网络流量的人都可以嗅探它们。

type =" password"仅在屏幕上隐藏字符。如果要停止嗅探,则需要加密连接(即HTTPS)。

到服务器的路由中的某个人(中间人)可以看到通过http连接发送的每个数据。

type =" password"仅将字符隐藏在屏幕上,甚至计算机上的其他程序也可以读取数据。

保护数据的唯一方法是发送经过SSL(HTTPS而不是HTTP)的数据

如果在非加密通道上传输,则POST正文的内容是可见的,即"明文"。如果希望防止HTTP主体被监听,则应通过HTTPS在安全通道上进行。

我们可以通过HTTPS加密HTTP连接,也可以在JavaScript中实现MD5和其他哈希算法,可以在发送客户端之前使用客户端对密码客户端进行哈希处理,从而阻止嗅探器读取密码。