autocomplete
承認された回答を含むほとんどの提案は、今日のWebブラウザーでは機能しない(つまり、Webブラウザーのパスワードマネージャーは無視するautocomplete
)ので、より斬新なソリューションはpassword
、text
、フィールドタイプ、背景色をテキストの色と一致させることです。ユーザー(またはKeePassのようなプログラム)がパスワードを入力するときに、実際のパスワードフィールドである一方で、パスワードを非表示にし続けるプレーンテキストフィールドです。ブラウザは、プレーンテキストフィールドに保存されているパスワードの保存を要求しません。
このアプローチの利点は、プログレッシブ拡張が可能であるため、フィールドが通常のパスワードフィールドとして機能するためにJavaScriptを必要としないことです(代わりにプレーンテキストフィールドから開始して同じアプローチを適用することもできますが、実際にはHIPAAではありません) PHI / PII準拠)。このアプローチは、必ずしもサーバーに送信されるとは限らない非表示のフォーム/フィールドに依存しません(非表示であるため)。また、これらのトリックのいくつかは、いくつかの最新のブラウザーでも機能しません。
jQueryプラグイン:
https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js
上記のリンクからの関連するソースコード:
(function($) {
$.fn.StopPasswordManager = function() {
return this.each(function() {
var $this = $(this);
$this.addClass('no-print');
$this.attr('data-background-color', $this.css('background-color'));
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this.attr('autocomplete', 'off');
$this.focus(function() {
$this.attr('type', 'password');
$this.css('background-color', $this.attr('data-background-color'));
});
$this.blur(function() {
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this[0].selectionStart = $this[0].selectionEnd;
});
$this.on('keydown', function(e) {
if (e.keyCode == 13)
{
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this[0].selectionStart = $this[0].selectionEnd;
}
});
});
}
}(jQuery));
デモ:
https://barebonescms.com/demos/admin_pack/admin.php
メニューの[エントリの追加]をクリックし、ページの一番下までスクロールして[モジュール:パスワードマネージャの停止]を表示します。
免責事項:このアプローチは目の見える人に有効ですが、スクリーンリーダーソフトウェアに問題がある可能性があります。たとえば、スクリーンリーダーはプレーンテキストフィールドを表示するため、ユーザーのパスワードを声に出して読む可能性があります。上記のプラグインを使用すると、他にも予期しない結果が生じる可能性があります。組み込みのWebブラウザー機能の変更は、さまざまな条件とエッジケースをテストして慎重に行う必要があります。