web-dev-qa-db-ja.com

type = passwordを入力し、ブラウザにパスワードを記憶させない

ブラウザがnotのように<input type="password" />を使用する方法を見たことを覚えています。パスワードを保存するようにユーザーに要求します。しかし、私は空白を描いています。これを行うHTML属性またはJavaScriptのトリックはありますか?

96
DavGarcia

autocomplete="off"を使用してみてください。ただし、すべてのブラウザでサポートされているかどうかはわかりません。 MSDNドキュメント こちら

EDIT:注:ほとんどのブラウザーは、この属性のサポートを終了しました。 autocomplete = "off"はすべての最新ブラウザーと互換性がありますか? を参照してください。

これはほぼ間違いなく、Webサイトのデザイナーではなくユーザーに任せる必要があります。

121
tvanfosson

<input type="password" autocomplete="off" />

これをユーザーとして追加したいのですが、これは非常に迷惑で、面倒なことです。これはユーザーを悪化させる可能性が高いため、これを使用しないことを強くお勧めします。

パスワードはすでにMRUに保存されていないため、正しく構成されたパブリックマシンはユーザー名も保存しません。

60
matpie

別の方法で解決しました。これを試すことができます。

<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){                                               
    setTimeout(function(){
        $("input#passfld").attr("type","password");
    },10);
});


// or in pure javascript
 window.onload=function(){                                              
    setTimeout(function(){  
        document.getElementById('passfld').type = 'password';
    },10);
  }   
</script>

#別の方法

 <script type="text/javascript">    
 function setAutoCompleteOFF(tm){
    if(typeof tm =="undefined"){tm=10;}
    try{
    var inputs=$(".auto-complete-off,input[autocomplete=off]"); 
    setTimeout(function(){
        inputs.each(function(){     
            var old_value=$(this).attr("value");            
            var thisobj=$(this);            
            setTimeout(function(){  
                thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
                thisobj.val(old_value);
            },tm);
         });
     },tm); 
    }catch(e){}
  }
 $(function(){                                              
        setAutoCompleteOFF();
    });
</script>

//属性autocomplete = "off"を追加する必要があります。または、クラス.auto-complete-offを入力ボックスに追加してお楽しみください

例:

  <input id="passfld" type="password" autocomplete="off" />
    OR
  <input id="passfld" class="auto-complete-off" type="password"  />
12
SarwarCSE

セキュリティの問題については、セキュリティコンサルタントがフィールド全体の問題について説明します(これは実際の独立したセキュリティ監査によるものです)。

HTMLオートコンプリートが有効-HTMLフォームのパスワードフィールドでオートコンプリートが有効になっています。ほとんどのブラウザには、HTMLフォームに入力されたユーザー資格情報を記憶する機能があります。

相対リスク:低

影響を受けるシステム/デバイス:o https:// ******* /

また、これが本当にプライベートなデータを含むanyフィールドをカバーすることに同意します。そのサイトが[普遍的または法的なコンプライアンス要件により]保護されるべきものにアクセスしようとするときはいつでも、常にクレジットカード情報、CVCコード、パスワード、ユーザー名などを入力するように強制することは大丈夫だと思います。例:購入フォーム、銀行/クレジットサイト、税務サイト、医療データ、連邦、原子力など-notStack OverflowやFacebookなどのサイト。

他のタイプのサイト-例TimeStar Onlineは出勤と退出のために-職場で常に同じPC /アカウントを使用しているため、そのサイトに資格情報を保存できないのは愚かです-奇妙なことにAndroid iPadではありません。共有PCであっても、誰か他の人の出入りは本当に上司を困らせる以外何もしないので、それほど悪くはないでしょう。 (彼らは入って、間違ったパンチを削除する必要があります-ただ公共のPCに保存しないことを選択してください)。

5
Michael

私は次を試してみましたが、どのブラウザでも動作するようです:

<input id="passfld" type="text" autocomplete="off" />

<script type="text/javascript">
    $(function(){  
        var passElem = $("input#passfld");
        passElem.focus(function() { 
            passElem.prop("type", "password");                                             
        });
    });
</script>

この方法は、タイムアウトテクニックを使用するよりもはるかに安全です。これは、ユーザーがフォーカスを合わせたときに入力フィールドがパスワードを取得することを保証するためです。

5
Apostolidis

これが最良の答えであり、最も簡単です! inputフィールドの前に追加のパスワードフィールドを配置し、display:noneを設定します。これにより、ブラウザが入力するときに、気にならないinputで入力します。

これを変更:

<input type="password" name="password" size="25" class="input" id="password" value="">

これに:

<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
4

また、 この答え どこでも動作するこの簡単なソリューションを使用しています(Safariモバイルの修正も参照してください):

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
2
Ferie
<input type="password" placeholder="Enter New Password" autocomplete="new-password">

どうぞ。

2
Bhaumik Thakkar

JQueryを使用して、IDでアイテムを選択できます。

$("input#Password").attr("autocomplete","off");

または、タイプ別にアイテムを選択します。

$("input[type='password']").attr("autocomplete","off");

または:

純粋なJavascriptを使用できます。

document.getElementById('Password').autocomplete = 'off';
2
Fernando

次のように使用することもできます

$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
1

FirefoxとChromeで次の作品が見つかりました。

<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>

これらはすべてフォームセクション内にあります。 「person」と「mypswd」は必要なものですが、ブラウザは「userid」と「passwd」を一度保存​​しますが、変更されないので二度と保存しません。本当に必要ない場合は、「個人」フィールドを削除できます。その場合、必要なのは「mypswd」フィールドだけです。これは、Webページのユーザーに既知の何らかの方法で変更される可能性があります。

0
Dick Guertin

ほとんどの主要なブラウザの場合、フォームの外部に入力があり、フォームに接続されていないため、ブラウザは送信されなかったと思わせます。この場合、ログインには純粋なJS検証を使用する必要があり、パスワードの暗号化も必要になります。

前:

<form action="..."><input type="password"/></form>

後:

<input type="password"/>
0
IamGuest

Firefox、Edge、およびInternet Explorerでオートコンプリートをオフにする唯一の方法は、次のようなフォームステートメントにautocomplete = "false"を追加することです。

  <form action="postingpage.php" autocomplete="false" method="post">

そして、フォーム入力にautocomplete = "off"を追加し、タイプをテキストに変更する必要があります。

     <input type="text" autocomplete="off">

このhtmlコードはブラウザで標準化する必要があるようです。ブラウザの設定を上書きするように、フォームタイプ=パスワードを修正する必要があります。唯一の問題は、入力マスキングが失われたことです。しかし、明るい面では、迷惑な「このサイトは安全ではありません」はFirefoxでは表示されません。

私にとっては、ユーザーはすでに認証されており、ユーザー名とパスワードの変更部分が変更されているため、大したことではありません

0
drtechno