这是我的浏览器在登录某个网站时发送的内容:
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
答案 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通过安全通道进行嗅探。