7

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

发布 http://www.some.site/login.php HTTP/1.0
用户代理:Opera/8.26(X2000;Linux i686;Z;en)
主持人:www.some.site
接受:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
接受语言:en-US,en;q=0.9
接受字符集:iso-8859-1, utf-8, utf-16, *;q=0.1
接受编码:放气,gzip,x-gzip,身份,*;q=0
推荐人:http://www.some.site/
代理连接:关闭
内容长度:123
内容类型:application/x-www-form-urlencoded

lots_of_stuff=这里&e2ad811= my_login_name &e327696= my_password &lots_of_stuff=这里

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

<输入类型="密码">

所做的不仅仅是让所有字符看起来像'*'

ps 如果重要的话,我使用 netcat(在 linux 上)并连接
浏览器 <=> netcat(在此处登录)<=> 代理 <=> remote_site

4

5 回答 5

17

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

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

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

于 2008-09-28T16:00:50.450 回答
4

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

于 2008-09-28T16:00:11.917 回答
2

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

于 2008-09-28T16:19:26.270 回答
0

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

于 2008-09-28T15:59:48.050 回答
0

如果在非加密通道上传输,POST 正文的内容是可见的,即“明文”。如果您希望保护 HTTP 正文不被嗅探,您应该通过安全通道通过HTTPS这样做。

于 2008-09-28T16:02:18.590 回答