2014-10-31 75 views
0

好的,所以這是問題所在。我有一個密碼輸入形式,看起來像這樣:HTML密碼輸入 - URL中顯示的密碼

<form class="form1" action="WEBSITE.HTML" onsubmit="return (this.pass.value==='1234')?true:false;"> 
    <div class="row uniform half collapse-at-2"> 
     <div class="8u"> 
      <input type="password" name="pass" id="password" placeholder="Input password"/> 
     </div> 
    <div class="4u"> 
     <input class="fit" type="submit" value="Go" onclick="if (document.getElementById('password').value == '1234');" /> 
    </div> 
    </div> 
</form> 

它的偉大工程,唯一的問題是,當我提交了正確的密碼,它重定向我的網站,例如谷歌,這個網址: google.com?pass=1234。因此,當有人正確輸入密碼時,它基本上會顯示密碼。有什麼辦法可以避免這種情況?希望我很清楚。

+1

您的密碼已經被透露,因爲這是最糟糕的方式可能實現密碼認證。將其廢棄並閱讀服務器端編碼。爲了大家的緣故。 – 2014-10-31 18:07:38

+0

我知道,我加密了HTML。我知道這不是安全的,但它只是一個非常簡單的網站,只有少數用戶。我只是想讓url不透露輸入。沒辦法做到這一點? @JohnConde – Alex 2014-10-31 18:08:54

+0

HTTPS和POST是你的朋友。 – scunliffe 2014-10-31 18:08:58

回答

1

認沽method屬性,在形式:

<form method="post" class="form1" action="WEBSITE.HTML" onsubmit="return (this.pass.value==='1234')?true:false;"> 

而且我覺得你不需要使用===,使用簡單的==代替。

UPDATE:

如果你的網站不喜歡一些隱藏的崗位價值,使用重定向沒有發送任何值:

<form class="form1" onsubmit="validateForm(); return false;"> 
    <div class="row uniform half collapse-at-2"> 
     <div class="8u"> 
      <input type="password" name="pass" id="password" placeholder="Input password"/> 
     </div> 
    <div class="4u"> 
     <input class="fit" type="submit" value="Go" /> 
    </div> 
    </div> 
</form> 
<script type="text/javascript"> 
function validateForm() 
{ 
    var pass = document.getElementById('password').value; 
    if(pass == '1234') //here 1234 is your password 
     window.location = 'https://www.google.com'; 
} 
</script> 
+0

謝謝!謝謝謝謝謝謝謝謝謝謝謝謝!愛這個社區! – Alex 2014-10-31 18:19:41

+1

@Alejandro - 做一個POST請求肯定是要走的路,但在客戶端檢查密碼根本沒有意義,那麼每個人都可以在瀏覽器中查看密碼。 – martinstoeckli 2014-10-31 20:15:34