【问题标题】:Is my form password being passed in clear text?我的表单密码是否以明文形式传递?
【发布时间】:2010-09-13 20:29:12
【问题描述】:

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

发布 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=here&e2ad811=my_login_name&e327696=my_password&lots_of_stuff=here

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

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

附言如果重要的话,我会使用 netcat(在 linux 上)并建立连接
浏览器 netcat(在此处登录) 代理 remote_site

【问题讨论】:

    标签: http forms


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

            • 第二个选项 - 哈希:如果嗅探器得到我密码的哈希,那么他不需要我的密码。他可以用我的密码哈希发送 POST。还是我在这里遗漏了什么?
            • 是的,但也有一些方法可以解决这个问题(散列一些随机数据附加到密码并发布),但即使是这个基本方案也可以防止在其他任何地方使用您的密码,这已经是一个很大的问题了鉴于大多数用户一遍又一遍地重复使用相同的密码。
            猜你喜欢
            • 2020-09-09
            • 2018-03-25
            • 1970-01-01
            • 1970-01-01
            • 2021-03-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-31
            相关资源
            最近更新 更多