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


回答:


123

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

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

これは間違いなく、Webサイトの設計者ではなく、ユーザーに委ねるべきものです。


2
HTTPSを使用してページを配信し、HTTPヘッダーまたはMETAタグを使用してキャッシュを防止することもできます。そうすれば、パスワードも保存されません(少なくともInternet Explorerでは)。
doekman

検証に関しては、HTML5は仕様にautocomplete属性を追加しているので問題あり
ません

9
今後の読者への注意:すべての主要なブラウザーは、属性を無視する方向に向かっています。(stackoverflow.com/a/21348793/37706を参照)
rdans 2014

@RyanDansie指摘してくれてありがとう。答えを更新しました。古い答えは...古いです。
tvanfosson 2014

8
「これは間違いなく、Webサイトの設計者ではなく、ユーザーに委ねるべきものです。」これには技術的な理由と技術的でない理由の両方があります。たとえば、ワンタイムパスワードは覚えておくべきではありません。「PINの最初の数字を入力してください」とある銀行サイトは別のものです。ビジネスアナリストがパスワードフィールドを必要とする可能性があり、開発者から選択肢を削除する可能性があることを忘れないでください。
Sprague

61

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

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

パスワードはすでにMRUに保存されておらず、正しく構成されたパブリックマシンはユーザー名を保存することすらできません。


23
「ユーザーに迷惑をかけない」ための+1。これがまさにこの種の機能の役割です。キャッシュを強制的にオフにするサイトのように、[戻る]ボタンはフォームをクリアします。非常にイライラする。
cletus 2009年

6
+1完全に同意します。管理者が顧客プロファイルページを編集するためのページで、パスワードを変更する場合にのみパスワードを入力します。これにより、管理者は顧客の情報を編集するたびにパスワードを変更する必要がなくなります。
DavGarcia、2009年

14
クレジットカード番号フィールドに非常に役立ちます。PayPalのフォームはすべてのブラウザーに保存され、コンピューターを使用するすべてのユーザーがすべてのデータを再入力できるため、記憶されているすべてのフィールドを手動で移動して削除する必要があります。
Egor Pavlikhin、2009年

31
ユーザーがログインとは関係のないパスワードを設定できるフォームでは、オートコンプリートを有効にするのが実際にはもっと面倒なオプションです。ブラウザは、実際には何もできないパスワードを保存するように提案する場合があります。また、セキュリティが重要な問題である場合、すべてのパブリックマシンが正しく構成されているとは限りません。
jrb

3
これを使い捨てパスワードに使用しています。jrbが言ったように、ブラウザがそれを保存した場合、それは非常に煩わしいでしょう。
Danation 2013

12

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

<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"  />

4
これは、私のシナリオではより良いソリューションであるオートコンプリートを防止する代わりに、ブラウザがパスワードを保存するのを防ぎます。
ポーフラセ

おかげで、最新のクロムで私のために働いてください注:Chromeのみが許可されている内部システムで使用されます。本番サイトで使用する場合は、さらにテストを行ってください。
Izion

@AntoVinish、私は、Firefox 40での私の最後の解決策の作業を願って
Sarwarハサン

7

私は次のことを試しましたが、どのブラウザでも機能するようです:

<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

セキュリティの問題については、これはセキュリティコンサルタントがフィールドの問題全体についてあなたに伝えるものです(これは実際の独立したセキュリティ監査からのものです):

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

相対リスク:低

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

私はこれが真にプライベートなデータを含むあらゆるフィールドをカバーすることに同意します。そのサイトが安全に保管する必要のあるものにアクセスしようとするときはいつでも、[クレジットカード情報、CVCコード、パスワード、ユーザー名などを常に入力するように強制しても大丈夫だと思います。例:購入フォーム、銀行/クレジットサイト、税務サイト、医療データ、連邦、核など-Stack OverflowやFacebook などのサイトではありません

他のタイプのサイト-たとえば、仕事に出入りするためのTimeStar Online-仕事で常に同じPC /アカウントを使用しているため、そのサイトに資格情報を保存できないので、おかしいです。 iPadではできません。共有PCでも、他の人の出入りは実際には何もせず、上司を困らせるだけなので、それほど悪くはありません。(彼らは入り、誤ったパンチを削除する必要があります-公共のPCに保存しないことを選択してください)。


5
パスワードを保存したくない理由のために、ここにコメントを追加するだけです。管理者がユーザーのパスワードを変更できるユーザーアカウントのあるWebサイトを維持しています。現在、クライアントは、「ユーザーの編集」フォームをログインフォームとして誤認しているため、「パスワードの変更」フォームに入力されたパスワードをすべてのユーザーに対して毎回保存することをChromeに提案しています。「Never Remember Password」をクリックするだけの簡単な指示は、明らかにそれらを超えています。
charredUtensil 2014

5
<input type="password" placeholder="Enter New Password" autocomplete="new-password">

どうぞ。


2
これは方法であり、そこには多くの回避策があり、Firefoxの最新バージョン(v67)とChrome(75)でテストされた、これと同じくらい簡単です。
マリアーノルイス

Chrome 80は、フォームを送信した後もパスワードを記憶するように提案します。
ボーク

4

これが最良の答えであり、最も簡単です!追加のパスワードフィールドをフィールドの前に置き、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="">

実際には、2つのパスワードフィールドがフォームにある場合は機能しますが、新しいブラウザが表示されていない場合は2番目のパスワードを無視します;(
Cedric Simon

1
使用してdisplay:none私(クローム61 OSX)のために動作しませんが、これはありません:<input type="password" style="position: absolute; top: -1000px;">
ジョンHascall

2

どこでも機能するこの簡単なソリューションを使用しているこの回答も読んでください(Safariモバイルの修正も参照してください)。

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>

1

JQueryを使用して、IDで項目を選択できます。

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

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

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

または:

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

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


1

オートコンプリートをオフ=廃止されて、私はより多くの最近の解決策を提案します。

パスワードフィールドを通常のテキストフィールドに設定し、CSSを使用して「ディスク」で入力をマスクします。コードは次のようになります。

<input type="text" class="myPassword" /> 

input .myPassword{
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

これは、Firefoxブラウザでは適切に機能しない可能性があり、追加のウォークアラウンドが必要であることに注意してください。詳しくは、https//stackoverflow.com/a/49304708/5477548をご覧ください

解決策はこのリンクから取られましたが、SOの「ホットリンクなし」に準拠するために、ここで要約しました。


0

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

前:

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

後:

<input type="password"/>

1
ちなみに、これはおそらく使用すべきではないトリックです。formタグを使用しないと、コードはデフォルトでHTML4になり、ユーザーのアカウントの検証が困難になります。
Cannicide 2017年

0

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

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

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

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

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

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

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


2
こんなことしないで。データは引き続きネットワークを介してプレーンテキストで送信されます。これはそもそもHTTP(HTTPSではない)の問題全体であり、「迷惑な」警告メッセージです。Man In The Middleは引き続きプレーンテキストデータを表示でき、サーバー側のログ記録は別の方法で構成されている可能性があるため、ユーザーが既に認証されていることには違いはありません(リクエストヘッダーを格納できますが、POSTを格納した場合は他の問題が発生します) HTTPSでのデータ)。
ジェイコブ

httpsはトラフィックを暗号化します。これをパブリックなインターネットアプリケーションの一部として使用している場合は、とにかくこれを行います。Postメソッドはブックマークを防ぎ、HTML内のPHPコードのマルチIframeはURLインジェクションを防ぎます。技術的には、フルパスを配置することになっています。展開する場合は、$ _ SERVER変数ではなく、テキストで記述されたベースURLを使用して$ _SESSION変数を読み込むことをお勧めします。$ _SERVER ['HTTP_HOST']と$ _SERVER ['PHP_SELF']は、いくつかのエクスプロイトがあるため、非パブリック環境でのみ使用する必要があります。
drtechno 2017年

ところで、私の例は、いかなる方法でもインターネットに接続されていないクローズドシステムの場合です
drtechno 2017年

「java onclick」で実行される暗号化スキームの使用に触れたことはなく、暗号化ルーチンの後にフォームを送信します。
drtechno 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.