2017-02-17 3 views
0

フォームの外の隠れたフィールドに平文を設定している間に、暗号化されたパスワードをサーバーに送信するログインフォームを作成しようとしています。パスワードとして間違った入力を保存しているInternet Explorer

Chrome/Firefoxでは、非表示のフィールドに設定されたログイン/パスワードを記憶し、IEでは暗号化されたパスワードを覚えています。

どうすればこの問題を回避できますか。

は、ここで私が持っているものです。

<script> 
    function encryptPassword() { 
     var txtUsername= document.getElementById("txtUsername"); 
     var txtPassword= document.getElementById("txtPassword"); 

     document.getElementById('username').value = txtUsername.value; 
     document.getElementById('password').value = txtPassword.value; 

     txtPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 
    } 
</script> 

<div style="visibility: hidden"> 
    <input type="text" name="username" id="username" style="width:0;height:0" tabindex="-1" /> 
    <input type="password" name="password" id="password" style="width:0;height:0" tabindex="-1" /> 
</div> 

<form id="form1" runat="server"> 
    <asp:TextBox ID="txtUsername" autofocus="autofocus" required="required" runat="server" /> 
    <asp:TextBox ID="txtPassword" TextMode="Password" required="required" runat="server" /> 
    <asp:Button ID="btnLogin" OnClick="btnOk_Click" OnClientClick="encryptPassword();" runat="server" /> 
</form> 
+0

ASPを貼り付ける代わりにHTMLとJSだけを[mcve] – mplungjan

+0

に貼り付けてください。申し訳ありませんが、スニペットエディタは理解する必要があるためASPを認識していないようです私の問題。 – Lucas

+0

あなたの問題はフォーム/ HTML/JavaScriptのみたいですが – mplungjan

答えて

0

あなたはI.Eがそれを記憶している理由です、それをサーバに投稿する前txtPasswordで暗号化されたパスワードを格納しています。暗号化されたパスワードを隠しフィールドに格納し、認証時にそこから取得することができます。

txtPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 

何かhfPasswordは隠しフィールドになり、あなたがフォームに追加する必要があります

hfPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 

をこの行を置き換えます。

私は暗号化されたテキストとして保存されます。 txtPassword値は保存しないでください。代わりにhfPasswordを保存してください。 txtPasswordは、ユーザーとの対話と暗号化機能への入力にのみ使用されます。

+0

ですが、パスワードは平文としてサーバーに送信されますが、https証明書を購入する予定はありません。 – Lucas

+0

いいえ、私は暗号化されたテキストとして保存されます。 txtPassword値は保存しないでください。代わりにhfPasswordを保存してください。 txtPasswordは、ユーザーとの対話と暗号化機能への入力にのみ使用されます。 – Imad

+0

しかし、フォームが送信されるときにtxtPasswordがフォーム内にあれば、それも送信されます。しかし、私は既に送信する前に 'disabled = 'disabled''を設定し、エラーがあればそれを解除するという解決策に取り組んでいます – Lucas

関連する問題