Hentikan LastPass mengisi formulir

130

Apakah ada cara untuk mencegah ekstensi browser LastPass mengisi formulir berbasis HTML dengan bidang masukan dengan nama "nama pengguna"?

Ini adalah bidang tersembunyi, jadi saya tidak ingin perangkat lunak apa pun menggunakan bidang ini untuk tujuannya:

<input type="text" name="username" id="checkusername" maxlength="9" value="1999" class="longinput" style="display:none">

Solusinya tidak boleh seperti "ganti nama kolom masukan".

Marco
sumber
12
Jika field disembunyikan, lebih baik untuk mengatur type="hidden"daripada menyembunyikannya dengan CSS
Reeno
2
sepertinya Anda menerima jawaban yang salah karena tidak berhasil ... apa yang disarankan Alexander berhasil, jadi Anda mungkin ingin mengganti pilihan Anda;)
Dominique
2
super sederhana $(':input').attr('data-lpignore', true);Itu saja. Ini akan menonaktifkan pengisian formulir lastpass pada semua formulir.
Adarsh ​​Madrecha

Jawaban:

170

Menambahkan

data-lpignore="true"

ke bidang masukan menonaktifkan kotak LastPass abu-abu [...] untuk saya.

Bersumber dari LastPass.com

whatismybrowser.com
sumber
5
Ini harus menjadi jawaban yang valid. LP tampaknya menghormati atribut ini dan tidak memerlukan nama, id, atau peran "pencarian" yang gila.
Corneliu
28
ini hanya menghapus ikon abu-abu, tetapi tidak menghentikan LastPass untuk mengabaikan
pengisian
26
ini seharusnya TIDAK menjadi jawaban yang diterima karena ini TIDAK "Hentikan LastPass mengisi formulir"
Conrad Warhol
3
Sesuai tautan yang disediakan dalam jawaban ( lastpass.com/support.php?cmd=showfaq&id=10512 ), LP hanya mencegah ikon untuk ditampilkan di bidang itu
Kunal
47

Dua syarat harus dipenuhi:

  1. The bentuk (tidak elemen) perlu memiliki autocomplete="off"atribut
  2. Pengguna lastpass harus mengaktifkan opsi ini: Settings > Advanced > Allow pages to disable autofill

Jadi ini tergantung pada pengguna dan pengembang.

takeshin
sumber
39

Apa yang berhasil bagi saya adalah memiliki kata "-search-" di id formulir, seperti <form id="affiliate-search-form">- dan lastpass tidak menambahkan elemennya ke input formulir. Ia bekerja dengan sesuatu yang lebih sederhana seperti <form id="search">tetapi tidak bekerja dengannya<form id="se1rch">

Alexander Gorbatenko
sumber
8
Juga disembunyikan jika: - jika nama kolom atau atribut kelas berisi kata "search" atau "srch" - jika atribut id atau nama mengandung "search" - atribut peran form adalah "search"
e1v
1
Sayangnya, ini tidak berfungsi untuk bidang kata sandi. Secara efektif, formulir masih terisi otomatis. Dalam kasus saya, menambahkan searchsebagai kelas ke nama pengguna dan kata sandi menonaktifkan tombol asterisk di bidang nama pengguna, tetapi bidang kata sandi tetap apa adanya.
Mike Rockétt
2
Ya, saya dapat mengonfirmasi bahwa bidang sandi masih diisi saat menggunakan pendekatan ini. :-(
Simon East
7
Ini tidak lagi berlaku untuk versi Lastpass saat ini. Jadi jawaban ini harus dihilangkan.
Heroselohim
4
Tambahkan -search- ke id dari satu kolom input berfungsi untuk saya di Chrome 51, LastPass 4.1.17. Menambahkannya ke formulir tidak membantu.
Alex2php
18

Saya tahu saya terlambat ke pesta di sini, tetapi saya menemukan ini ketika saya mencoba menghentikan lastpass dari merusak formulir saya. @takeshin benar karena pelengkapan otomatis tidak cukup. Saya akhirnya melakukan peretasan di bawah ini hanya untuk menyembunyikan simbol. Tidak cantik, tapi saya menyingkirkan ikonnya.

Jika ada pengembang lastpass yang membaca ini, tolong beri kami atribut untuk digunakan, jadi kami tidak perlu menggunakan hal-hal seperti ini.

form[autocomplete="off"] input[type="text"] {
    background-position: 150% 50% !important;
}
jan
sumber
2
Ini adalah satu-satunya solusi yang berhasil untuk saya (bahkan dengan bermain dengan pengaturan lastpass, yang sebenarnya saya tidak mengharapkan pengguna saya melakukannya), meskipun itu bertentangan dengan saya mengatur sendiri background-imagepada bidang input (saya suka meletakkan "jelas tombol "pada kolom masukan) - dalam hal ini yang juga berfungsi untuk saya hanyalah pengaturan background-imagedan background-positiondengan !importantuntuk mengganti gaya bawaan lastpass.
Guss
Pemikiran yang sangat kreatif! Terima kasih untuk ini!
Howard
18

Saya pikir lastpass menghormati autocomplete="off"atribut untuk input, tapi saya tidak yakin 100%.

EDIT Seperti yang ditunjukkan orang lain. ini hanya berfungsi jika pengguna telah mengonfigurasi izin terakhir untuk menerima ini.

mituw16
sumber
20
Ya, tetapi tidak secara default: helpdesk.lastpass.com/extension-preferences/advanced
Marco
12
Saya dapat mengonfirmasi bahwa lastpass tidak menghormati autocomplete="off"di tingkat bentuk. Itu hanya menyia-nyiakan waktu satu jam pengembangan bagi saya pada formulir "edit pengguna" yang tampaknya menampilkan alamat email yang salah. Preferensi lastpass memiliki opsi "jangan timpa bidang yang telah diisi", yang sangat membantu.
Jason
7
Seperti yang dikatakan Marco, Anda perlu mengaktifkan perilaku ini. Preferences-> Advanced-> Respect AutoComplete = off: izinkan situs web menonaktifkan IsiOtomatis
Dan
bagaimana Anda melewati ini di lastpass?
Crash893
14

Bagi saya bekerja baik type=searchyang agak sama dengan textatau menggunakan role=note.

Anda dapat memeriksa LastPass-JavaScript tetapi ini sangat besar, mungkin Anda dapat menemukan beberapa solusi di sana, dari apa yang saya lihat mereka hanya memeriksa 4 jenis input, jadi input type=searchakan menjadi satu solusi:

!c.form && ("text" == c.type || "password" == c.type || "url" == c.type || "email" == c.type) && lpIsVisible(c))

Juga itu adalah role-keyword yang tampaknya mereka abaikan:

var c = b.getAttribute("role");
switch (c) {
case "navigation":
case "banner":
case "contentinfo":
case "note":
case "search":
case "seealso":
case "columnheader":
case "presentation":
case "toolbar":
case "directory":`

Saya memeriksa LastPass ' onloadwff.js, siapkan 26.960 baris kode :)

Kacang polong lembek
sumber
5
Saya mencoba semua jawaban di atas dan type=searchsatu-satunya hal yang berhasil untuk saya.
Ryan King
1
+1, sepertinya menggunakan type=searchadalah satu-satunya cara untuk mencegah isiotomatis terlepas dari status setelan "Respect autocomplete = off" LastPass.
johnnyRose
Mencoba menambahkan role="note"atau type="search". Tidak ada yang berfungsi di Chrome terbaru dan lastpass terbaru.
Nikita 웃
tampaknya lpignorebekerja lagi, https://jsfiddle.net/78z0L1sa/3/
biarlah
OMG, ini menjengkelkan, LastPass mengubah bidang kata sandi type = text saya menjadi type = kata sandi dan pada layar khusus ini kata sandi harus dilihat, lalu LastPass menambahkan kata sandi situs dan bukan kata sandi yang benar tanpa pengguna tahu kapan mereka menyimpannya mengubah kredensial dan memutus koneksi mereka ke sistem lain. Lpignore, hanya menghapus ikon, solusi lain membutuhkan interaksi pengguna, yang tidak ideal. Akhirnya, mengubah jenis pencarian berhasil; meskipun saya benci harus melakukan ini karena perangkat lunak orang lain. Bagaimanapun, up-vote yang ini.
Jason Martin
10

Tambahkan "penelusuran" ke id masukan

<input type="text" name="user" id="user-search"/>
Alex
sumber
1
Bekerja dengan baik untuk saya. Diuji di Chrome terbaru. Ini sedikit hack, tetapi tidak berpotensi merusak seperti yang lain jadi saya akan melakukannya.
Tedd Hansen
6

Agak terlambat ke pesta tetapi saya baru saja mencapai ini dengan memodifikasi formulir dengan:

<form autocomplete="off" name="lastpass-disable-search">

Saya kira orang bodoh ini terus berpikir bahwa ini adalah formulir pencarian. Namun ini tidak berfungsi untuk bidang kata sandi! Lastpass mengabaikan bidang nama dalam kasus ini.

Satu-satunya cara saya berhasil melakukan ini adalah dengan menambahkan yang berikut ini langsung di bagian atas formulir:

<form autocomplete="off">
    <div id="lp" ><input type="text" /><input type="password" /></div><script type="text/javascript">setTimeout(function(){document.getElementById('lp').style.display = 'none'},75);</script>
</form>

Ini menyebabkan pergantian tampilan yang buruk tetapi menghapus isi otomatis yang tidak masuk akal - meskipun widget "buat sandi" masih ditampilkan. LastPass menunggu hingga domready dan kemudian memeriksa untuk melihat apakah ada bidang kata sandi yang terlihat, jadi tidak mungkin untuk menyembunyikan atau mengecilkan bidang tiruan di atas.

PeteAUK
sumber
5

Untuk rilis buggy Lastpass Oktober 2019 terbaru ini, perbaikan sederhana ini tampaknya yang terbaik.

Menambahkan

type="search"

untuk masukan Anda.

Rutin lastpass memeriksa typeatribut untuk menentukan apa yang harus dilakukan dengan isiotomatisnya, dan tidak melakukan apa pun pada html5 type"pencarian" ini. Tentu ini sedikit hacky, tetapi ini adalah perubahan satu baris yang dapat dengan mudah dihapus ketika mereka memperbaiki skrip buggy mereka.

Catatan: Setelah melakukan ini, masukan Anda mungkin tampak memiliki gaya yang berbeda oleh beberapa browser jika mereka mengambil typeatributnya. Jika Anda mengamati hal ini, Anda dapat mencegahnya terjadi dengan menyetel properti CSS khusus browser -webkit-appearancedan -moz-appearanceke 'none'input Anda.

Tony Brasunas
sumber
4

Kode gaya ES6 ini sangat membantu saya karena menambahkan data-lpignore ke semua kontrol input saya:

const elements = document.getElementsByTagName("INPUT");
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

Untuk mengakses kontrol INPUT tertentu, seseorang dapat menulis sesuatu seperti ini:

document.getElementById('userInput').setAttribute("data-lpignore", "true");

Atau, Anda dapat melakukannya dengan nama kelas:

const elements = document.getElementsByClassName('no-last-pass');
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}
ccalvert
sumber
1

Tak satu pun dari opsi di sini (pelengkapan otomatis, data-lpignore, dll.) Yang mencegah LastPass mengisi otomatis bidang formulir saya. Saya mengambil pendekatan yang lebih palu palu untuk masalah dan namesebagai gantinya mengatur atribut input secara asinkron melalui JavaScript. Fungsi dependen-jQuery berikut (dipanggil dari event handler onsubmit formulir) melakukan triknya:

function setInputNames() {
    $('#myForm input').each(function(idx, el) {
        el = $(el);
        if (el.attr('tmp-name')) {
            el.attr('name', el.attr('tmp-name'));
        }
    });
}

$('#myForm').submit(setInputNames);

Dalam formulir, saya hanya menggunakan tmp-nameatribut sebagai pengganti nameatribut yang setara . Contoh:

<form id="myForm" method="post" action="/someUrl">
    <input name="username" type="text">
    <input tmp-name="password" type="password">
</form>

Perbarui 2019-03-20

Saya masih mengalami kesulitan dengan hal di atas karena AngularJS tergantung pada kolom formulir yang memiliki nameatribut agar ngMessages menampilkan pesan kesalahan validasi kolom dengan benar.

Pada akhirnya, satu-satunya solusi yang dapat saya temukan untuk mencegah LastPass mengisi bidang kata sandi pada formulir Perubahan Kata Sandi saya adalah dengan:

  1. Hindari penggunaan input[type=password]seluruhnya, DAN
  2. untuk tidak memiliki 'password' di nama field

Karena saya harus dapat mengirimkan formulir secara normal dalam kasus saya, saya masih menggunakan solusi asli saya untuk memperbarui nama bidang 'tepat waktu'. Untuk menghindari penggunaan kolom masukan kata sandi, saya menemukan solusi ini bekerja dengan sangat baik.

John Rix
sumber
0

Mencoba -telusuri ganti nama tetapi untuk beberapa alasan itu tidak berhasil. Apa yang berhasil bagi saya adalah sebagai berikut:

  1. tandai formulir untuk pelengkapan otomatis - pelengkapan otomatis = "off"
  2. ubah jenis input kolom formulir menjadi teks
  3. tambahkan kelas baru ke css Anda untuk menutupi masukan, mensimulasikan bidang kata sandi
  4. bit css: input.masker {-webkit-text-security: disc; }

Telah dicoba dan diuji di versi terbaru FF dan Chrome.

Louis Ferreira
sumber
0

Inilah yang berhasil bagi saya untuk mencegah lastpass mengisi kotak pisau cukur @ Html.EditorFor di Chrome:

Klik ikon LastPass aktif di bilah alat Anda, lalu buka Opsi Akun> Preferensi Ekstensi.

Di layar ini centang "Jangan timpa kolom yang sudah diisi" (di bagian bawah)

Selanjutnya, klik "lanjutan" di sebelah kiri.

Pada layar ini centang "Respect AutoComplete = off: izinkan situs web menonaktifkan IsiOtomatis".

Saya tidak perlu melakukan sesuatu yang khusus dalam bentuk cshtml ASP saya tetapi saya memiliki nilai default dalam formulir untuk kotak @ Html.EditorFor.

Saya harap ini membantu dan berhasil untuk seseorang. Saya tidak dapat menemukan bantuan khusus Razor tentang masalah ini di web jadi saya pikir saya akan menambahkan ini karena saya mengetahuinya dengan bantuan tautan dan kontribusi di atas.

Doug
sumber