是否可以隐藏地址栏中的密码字段?
我有一个用户名和密码的登录表单。它可以工作,但在请求后,我在Web浏览器上看到类似“... login?user = myUser & password = myPassword”。是否可以隐藏地址栏中的密码字段?
鉴于表单有一个密码字段,可以在输入密码时隐藏密码,所以在地址栏上看到密码并不会很有趣。
可以避免这种情况吗?
用户验证是在服务器上使用自定义Java Web服务器完成的。
这样做的唯一方法是不使用表单提交的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">
您可以了解更多有关这两种方法在这里:
然而请注意,POST比GET更安全。你可以阅读更多关于此这里:
不知道你用你如何交互的HTTP消息什么框架,我们只能指定一个通用的答案。 –
我正在使用自定义的Web服务器,所以没有标准框架。我拦截HTTP请求并采取相应措施。 – michelemarcon