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

时间:2008-09-28 15:58:41

标签: http html-form

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

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

我是否可以声明任何人都可以嗅探该网站的登录名和密码? 也许就在我的局域网上?
如果是这样(即使只在局域网上)那么我很震惊。我想用

<input type="password">

做了更多的事情而不是让所有角色看起来像'*'

P.S。如果重要的话,我玩netcat(在linux上)并建立连接 浏览器&lt; =&gt; netcat(loged here)&lt; =&gt;代理&lt; =&gt; remote_site

5 个答案:

答案 0 :(得分:17)

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

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

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

答案 1 :(得分:4)

type =“password”仅隐藏屏幕上的角色。如果要停止嗅探,则需要加密连接(即HTTPS)。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果在非加密频道上传输,则POST主体的内容是可见的,即“在明文中”。如果您希望保护HTTP正文免受嗅探,您应该通过HTTPS通过安全通道进行嗅探。