Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Passwords 什么';正是';在将密码从计算机发送到网络之前,在web浏览器中键入密码时会发生什么情况?_Passwords_Password Protection - Fatal编程技术网

Passwords 什么';正是';在将密码从计算机发送到网络之前,在web浏览器中键入密码时会发生什么情况?

Passwords 什么';正是';在将密码从计算机发送到网络之前,在web浏览器中键入密码时会发生什么情况?,passwords,password-protection,Passwords,Password Protection,当我在网页表单中的密码输入字段(例如Gmail的密码字段)中键入密码,然后按enter键时,会发生什么情况。在浏览器将其从本地计算机发送到网络之前,我想了解一下这个过程。例如:在本地计算机上,web浏览器首先进行系统调用,然后本地计算机对密码进行一些处理,然后通过网络发送密码。我在谷歌上搜索了很多次,但没有找到任何有用的东西。在大多数情况下,需要表单提交密码的网站用于将发布的数据(包括用户名和密码)加密回服务器(如果网站不使用SSL,则密码将以明文形式发送) 编辑: ,SSL/TLS在OSI的表

当我在网页表单中的密码输入字段(例如Gmail的密码字段)中键入密码,然后按enter键时,会发生什么情况。在浏览器将其从本地计算机发送到网络之前,我想了解一下这个过程。例如:在本地计算机上,web浏览器首先进行系统调用,然后本地计算机对密码进行一些处理,然后通过网络发送密码。我在谷歌上搜索了很多次,但没有找到任何有用的东西。

在大多数情况下,需要表单提交密码的网站用于将发布的数据(包括用户名和密码)加密回服务器(如果网站不使用SSL,则密码将以明文形式发送)

编辑: ,SSL/TLS在OSI的表示层工作,尽管这表明SSL在TCP应用层。AFAIK https只是在SSL连接之上工作的http

根据@John的帖子,提交密码的传统方式是向用户提供带有用户名和密码的表单。 (完整参考)


用户名:
密码:
该表单数据将被发布回服务器,然后服务器应在检查用户名和密码的身份验证之前验证输入(通常通过单向散列传递一个或两个字段,以确保密码不会以明文形式存储在数据库中)

从安全的角度来看

  • 虽然浏览器将在密码控件上“显示”星号,但浏览器仍然知道明文密码
  • 安全表单方法应为POST(方法=GET将出现在查询字符串上)
  • 表单页面本身应该通过https提供(因为除了加密之外,浏览器还针对域验证服务器的证书,以便证书链本身到期)
  • 表单操作本身应该使用https://url,以确保在返回服务器的过程中对用户名和密码进行加密
需要提出的一个概念是,为什么浏览器不“散列”或在连接的“客户端”上执行某些身份验证检查,是因为服务器永远不能信任浏览器/远程计算机-原始完整密码必须由远程客户端计算机发送

回复:我可以破解密码吗

常见的攻击有

  • 记录用户击键的软件,包括用户名和密码
  • 网络钓鱼-攻击者向用户提供一个类似于目标登录页面的站点登录页面,用户可能会被愚弄键入用户名和密码。如果用户配置的DNS或LMHosts文件被破坏,则登录URL可以被设置为真实的,即使它是由攻击者的网络钓鱼服务器提供的
  • XSS攻击(例如,如果登录页面在同一页面上显示未经验证的用户评论帖子)将允许攻击者注入javascript,以钩住页面上任意数量的事件,获取用户名和密码
  • 在弱客户端验证和一些有关服务器设计的信息的情况下,SQL注入攻击可用于完全绕过登录、从服务器数据库读取数据(例如,如果明文存储,则获取所有用户和密码),或损坏或删除服务器上的数据(但这会攻击服务器,而不是浏览器)

    • 一般来说,没有什么特别的事情发生


      密码只是一个HTML
      元素。它只是一个文本框。

      我不知道我是否会声称大多数网站通过HTTPS发送密码。他们应该这样做,但这并不意味着他们会这样做。大多数大型站点都有,但也有很多较小的站点可能没有。@nonnb->所以这就是我的解释:https工作在OSI模型的最高层,即应用程序。因此,当我输入密码时,例如gmail,网站会立即以某种格式对其进行加密。现在这个加密代码就是我的本地机器可以访问的。询问的全部目的是,根据本地机器寄存器中的值,我是否可以“破解”密码?我知道答案是否定的,但我不能真正指出原因。请纠正我,因为我是这些概念的新手。我已经更新了帖子:)建议你用你最喜欢的语言编写一个登录页面,并使用Fiddler之类的工具来监控浏览器和服务器之间的流量。恐怕要求用户名和密码的网站很少使用https。虽然我更同意你的看法,但我应该这样做。非常感谢你。:)
      <form name="input" action="https://somesite/login.asp" method="post">
      Username: <input type="text" name="user" />
      Password: <input type="password" name="password" />
      <input type="submit" value="Submit" />
      </form>