Passwords 什么';正是';在将密码从计算机发送到网络之前,在web浏览器中键入密码时会发生什么情况?
当我在网页表单中的密码输入字段(例如Gmail的密码字段)中键入密码,然后按enter键时,会发生什么情况。在浏览器将其从本地计算机发送到网络之前,我想了解一下这个过程。例如:在本地计算机上,web浏览器首先进行系统调用,然后本地计算机对密码进行一些处理,然后通过网络发送密码。我在谷歌上搜索了很多次,但没有找到任何有用的东西。在大多数情况下,需要表单提交密码的网站用于将发布的数据(包括用户名和密码)加密回服务器(如果网站不使用SSL,则密码将以明文形式发送) 编辑: ,SSL/TLS在OSI的表示层工作,尽管这表明SSL在TCP应用层。AFAIK https只是在SSL连接之上工作的http 根据@John的帖子,提交密码的传统方式是向用户提供带有用户名和密码的表单。 (完整参考)Passwords 什么';正是';在将密码从计算机发送到网络之前,在web浏览器中键入密码时会发生什么情况?,passwords,password-protection,Passwords,Password Protection,当我在网页表单中的密码输入字段(例如Gmail的密码字段)中键入密码,然后按enter键时,会发生什么情况。在浏览器将其从本地计算机发送到网络之前,我想了解一下这个过程。例如:在本地计算机上,web浏览器首先进行系统调用,然后本地计算机对密码进行一些处理,然后通过网络发送密码。我在谷歌上搜索了很多次,但没有找到任何有用的东西。在大多数情况下,需要表单提交密码的网站用于将发布的数据(包括用户名和密码)加密回服务器(如果网站不使用SSL,则密码将以明文形式发送) 编辑: ,SSL/TLS在OSI的表
用户名:
密码:
该表单数据将被发布回服务器,然后服务器应在检查用户名和密码的身份验证之前验证输入(通常通过单向散列传递一个或两个字段,以确保密码不会以明文形式存储在数据库中)
从安全的角度来看
- 虽然浏览器将在密码控件上“显示”星号,但浏览器仍然知道明文密码
- 安全表单方法应为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>