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

时间:2011-08-22 13:22:28

标签: java web-applications login passwords

我有一个包含用户名和密码的登录表单。它可以工作,但在我在Web浏览器上看到请求之后会出现类似“... login?user = myUser& password = myPassword”的内容。

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

有可能避免这种情况吗?

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

8 个答案:

答案 0 :(得分:7)

  1. 将您的HTTP表单方法设置为POST,而不是GET。这消除了在url上附加参数的形式。
  2. 保护您的网页,使用HTTPS代替HTTP。这样,窃听者就无法读取未加密的HTTP POST消息。

答案 1 :(得分:1)

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

找到

您的表单将如下所示

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

答案 2 :(得分:1)

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

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

...到...

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

答案 3 :(得分:0)

您可以对密码进行编码,这会使其模糊不清。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

当您在地址栏中看到“登录?user = myUser&amp; password = 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