是否可以隐藏地址栏中的密码字段?

问题描述:

我有一个用户名和密码的登录表单。它可以工作,但在请求后,我在Web浏览器上看到类似“... login?user = myUser & password = myPassword”。是否可以隐藏地址栏中的密码字段?

鉴于表单有一个密码字段,可以在输入密码时隐藏密码,所以在地址栏上看到密码并不会很有趣。

可以避免这种情况吗?

用户验证是在服务器上使用自定义Java Web服务器完成的。

+0

不知道你用你如何交互的HTTP消息什么框架,我们只能指定一个通用的答案。 –

+0

我正在使用自定义的Web服务器,所以没有标准框架。我拦截HTTP请求并采取相应措施。 – michelemarcon

  1. 设置你的HTTP形式方法POST,而不是GET。这消除了在url上追加参数的形式。
  2. 确保您的网页使用HTTPS而不是HTTP。这样,窃听者无法读取未加密的HTTP POST消息。
+2

+1第2点非常重要。许多人认为POST形式不能被“看到”,但只有在正常人眼中才是如此。 – Nivas

+0

但catz会让你:) – Alpedar

这样做的唯一方法是不使用表单提交的GET方法。您需要使用POST方法。更多信息可以在这里http://www.cs.tut.fi/~jkorpela/forms/methods.html

发现你的表格看起来就像这样

<form method="post" action="somepage.php"> 
    </form> 

您可以编码密码,这会掩盖它。

但是,使用POST表单将隐藏其所有字段。

是的,使用POST请求而不是GET。

转换表单使用HTTP“POST”方法,而不是“GET”,例如:

<form action="/login" method="post"> 

还要考虑模糊密码在传输数据之前,例如使用诸如Base64或MD5的方案。

将表单上的'method'属性从“get”更改为“post” - 并通过HTTPS发送请求,最好。

您的表单正在使用GET NOT POST。通过URL(GET)中的查询字符串传递变量可能很危险,因为用户可以查看和修改这些值。将表单的方法更改为POST。在标准的HTML,这将是这样的:

<form method="GET" action="...... 

...到...

<form method="POST" action="..... 

当你看到一个“登录?用户= MYUSER &密码= MYPASSWORD”在地址栏中这意味着你的登录表单使用GET请求方法:

<form id="login" action="some_file" method="get"> 

隐藏这些信息的最简单的方法是从GET更改为POST方法:

<form id="login" action="some_file" method="post"> 

您可以了解更多有关这两种方法在这里:

When to use POST and GET?

然而请注意,POST比GET更安全。你可以阅读更多关于此这里:

POST and GET in terms of Security