2011-08-22 56 views
0

我有一個用戶名和密碼的登錄表單。它可以工作,但在請求後,我在Web瀏覽器上看到類似「... login?user = myUser & password = myPassword」。是否可以隱藏地址欄中的密碼字段?

鑑於表單有一個密碼字段,可以在輸入密碼時隱藏密碼,所以在地址欄上看到密碼並不會很有趣。

可以避免這種情況嗎?

用戶驗證是在服務器上使用自定義Java Web服務器完成的。

+0

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

+0

我正在使用自定義的Web服務器,所以沒有標準框架。我攔截HTTP請求並採取相應措施。 – michelemarcon

回答

7
  1. 設置你的HTTP形式方法POST,而不是GET。這消除了在url上追加參數的形式。
  2. 確保您的網頁使用HTTPS而不是HTTP。這樣,竊聽者無法讀取未加密的HTTP POST消息。
+2

+1第2點非常重要。許多人認爲POST形式不能被「看到」,但只有在正常人眼中才是如此。 – Nivas

+0

但catz會讓你:) – Alpedar

0

您可以編碼密碼,這會掩蓋它。

但是,使用POST表單將隱藏其所有字段。

0

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

0

轉換表單使用HTTP「POST」方法,而不是「GET」,例如:

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

還要考慮模糊密碼在傳輸數據之前,例如使用諸如Base64或MD5的方案。

0

將表單上的'method'屬性從「get」更改爲「post」 - 並通過HTTPS發送請求,最好。

1

您的表單正在使用GET NOT POST。通過URL(GET)中的查詢字符串傳遞變量可能很危險,因爲用戶可以查看和修改這些值。將表單的方法更改爲POST。在標準的HTML,這將是這樣的:

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

...到...

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

當你看到一個「登錄?用戶= 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