Pertanyaan Bagaimana Anda menonaktifkan pelengkapan otomatis Peramban di formulir web / tag masukan?


Bagaimana Anda menonaktifkannya autocomplete di browser utama untuk spesifik input (atau form field)?


2253
2017-08-05 16:22


asal


Jawaban:


Firefox 30 mengabaikan autocomplete="off" untuk kata sandi, memilih untuk meminta pengguna, bukan apakah kata sandi harus disimpan pada klien. Perhatikan hal berikut komentar mulai 5 Mei 2014:

  • Pengelola kata sandi selalu meminta jika ingin menyimpan kata sandi. Kata sandi tidak disimpan tanpa izin dari pengguna.
  • Kami adalah browser ketiga untuk menerapkan perubahan ini, setelah IE dan Chrome.

Menurut Dokumentasi pengembang Mozilla atribut elemen formulir autocomplete mencegah data formulir tidak disimpan dalam cache di browser yang lebih lama.

<input type="text" name="foo" autocomplete="off" />

2212
2017-08-05 16:24



Sebagai tambahannya autocomplete=off, Anda juga bisa memiliki nama-nama bidang formulir Anda diacak oleh kode yang menghasilkan halaman, mungkin dengan menambahkan beberapa string sesi-spesifik ke akhir nama.

Ketika formulir dikirimkan, Anda dapat menghapus bagian itu sebelum memprosesnya di sisi server. Ini akan mencegah browser web menemukan konteks untuk bidang Anda dan juga mungkin membantu mencegah serangan XSRF karena penyerang tidak akan dapat menebak nama bidang untuk pengiriman formulir.


248
2017-10-20 13:36



Sebagian besar browser utama dan pengelola kata sandi (dengan benar, IMHO) sekarang diabaikan autocomplete=off.

Mengapa? Banyak bank dan situs "keamanan tinggi" lainnya ditambahkan autocomplete=off ke halaman login mereka "untuk tujuan keamanan" tetapi ini benar-benar mengurangi keamanan karena menyebabkan orang mengubah kata sandi di situs keamanan tinggi ini agar mudah diingat (dan dengan demikian retak) karena pelengkapan otomatis rusak.

Dulu sebagian besar manajer kata sandi mulai mengabaikan autocomplete=off, dan sekarang browser mulai melakukan hal yang sama hanya untuk input nama pengguna / kata sandi.

Sayangnya, bug di implementasi autocomplete memasukkan informasi nama pengguna dan / atau kata sandi ke dalam kolom formulir yang tidak sesuai, menyebabkan kesalahan validasi form, atau lebih buruk lagi, tanpa disengaja memasukkan nama pengguna ke dalam bidang yang sengaja dikosongkan oleh pengguna.

Apa yang harus dilakukan oleh pengembang web?

  • Jika Anda dapat menyimpan semua field kata sandi pada halaman itu sendiri, itu adalah awal yang baik karena tampaknya keberadaan bidang kata sandi adalah pemicu utama bagi pengguna / lulus lompatan otomatis untuk menendang. Jika tidak, baca tips di bawah.
  • Safari pemberitahuan bahwa ada 2 bidang kata sandi dan menonaktifkan pelengkapan otomatis dalam kasus ini, dengan asumsi itu harus berupa kata sandi perubahan, bukan formulir masuk. Jadi, pastikan untuk menggunakan 2 kolom kata sandi (baru dan konfirmasikan baru) untuk setiap formulir yang Anda izinkan
  • Chrome 34, sayangnya, akan mencoba untuk mengisi bidang secara otomatis dengan pengguna / lulus setiap kali melihat bidang kata sandi. Ini adalah bug yang sangat buruk yang diharapkan, mereka akan mengubah perilaku Safari. Namun, menambahkan ini ke bagian atas formulir Anda tampaknya menonaktifkan isiOtomatis kata sandi:

    <input type="text" style="display:none">
    <input type="password" style="display:none">
    

Saya belum menyelidiki IE atau Firefox secara menyeluruh tetapi akan senang untuk memperbarui jawabannya jika yang lain memiliki info di komentar.


184
2018-04-23 04:00



Terkadang bahkan autocomplete = mati akan tidak mencegah untuk diisi dalam kredensial ke bidang yang salah, tetapi bukan bidang pengguna atau julukan.

Solusi ini adalah tambahan untuk posting apinstein tentang perilaku browser.

perbaiki autofill browser dalam read-only dan atur bisa ditulis pada fokus (klik dan tab)

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

Memperbarui: Mobile Safari mengatur kursor di lapangan, tetapi tidak menampilkan keyboard virtual. Perbaikan Baru berfungsi seperti sebelumnya tetapi menangani keyboard virtual:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Demo Live https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Karena Browser otomatis mengisi kredensial ke bidang teks salah !?

Saya melihat perilaku aneh ini di Chrome dan Safari, saat ada bidang kata sandi di bentuk yang sama. Saya kira, browser mencari bidang kata sandi untuk memasukkan kredensial yang disimpan. Kemudian otomatis mengisi (hanya menebak karena pengamatan) bidang textlike-input terdekat, yang muncul sebelum bidang kata sandi di DOM. Karena browser adalah contoh terakhir dan Anda tidak dapat mengendalikannya,

Perbaikan baca di atas ini berhasil untuk saya.


120
2018-06-16 16:04



<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Ini akan bekerja di Internet Explorer dan Mozilla FireFox, kelemahannya adalah itu bukan standar XHTML.


93
2017-08-05 16:27



Solusi untuk Chrome adalah menambahkan autocomplete="new-password" ke kata sandi jenis input.

Contoh:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome selalu melengkapi otomatis data jika menemukan kotak ketik kata sandi, cukup untuk menunjukkan kotak itu autocomplete = "new-password".

Ini bekerja dengan baik untuk saya.

Catatan: pastikan dengan F12 bahwa perubahan Anda berpengaruh, banyak kali browser menyimpan halaman dalam cache, ini memberi saya kesan buruk bahwa itu tidak berfungsi, tetapi browser tidak benar-benar membawa perubahan.


57
2017-11-24 17:07



Seperti yang orang lain katakan, jawabannya adalah autocomplete="off"

Namun, saya pikir itu layak dinyatakan Mengapa itu ide yang baik untuk menggunakan ini dalam kasus-kasus tertentu karena beberapa jawaban untuk ini dan duplikat pertanyaan telah menyarankan lebih baik untuk tidak mematikannya.

Menghentikan browser yang menyimpan nomor kartu kredit tidak boleh diserahkan kepada pengguna. Terlalu banyak pengguna bahkan tidak akan menyadari itu masalah.

Sangat penting untuk mematikannya di bidang untuk kode keamanan kartu kredit. Sebagai halaman ini menyatakan:

"Jangan pernah menyimpan kode keamanan ... nilainya tergantung pada anggapan bahwa satu-satunya cara untuk menyediakannya adalah dengan membacanya dari kartu kredit fisik, membuktikan bahwa orang yang menyediakannya benar-benar memegang kartu itu."

Masalahnya adalah, jika itu adalah komputer publik (cyber cafe, perpustakaan, dll) maka mudah bagi pengguna lain untuk mencuri detail kartu Anda, dan bahkan di komputer Anda sendiri situs web berbahaya mencuri data autocomplete.


53
2018-01-23 21:21



Saya harus memohon untuk berbeda dengan jawaban-jawaban yang mengatakan untuk menghindari nonaktifkan pelengkapan otomatis.

Hal pertama yang perlu dikemukakan adalah bahwa pelengkapan otomatis tidak secara eksplisit dinonaktifkan pada bidang formulir login adalah kegagalan PCI-DSS. Selain itu, jika komputer lokal pengguna disusupi, data pelengkapan otomatis apa pun dapat diperoleh dengan mudah oleh penyerang karena disimpan di tempat yang bersih.

Tentu saja ada argumen untuk kegunaan, namun ada keseimbangan yang sangat baik ketika datang ke kolom formulir yang harus memiliki autocomplete dinonaktifkan dan mana yang tidak.


29
2017-09-17 00:33



Tiga opsi: Pertama:

<input type='text' autocomplete='off' />

Kedua:

<form action='' autocomplete='off'>

Ketiga (kode javascript):

$('input').attr('autocomplete', 'off');

24
2018-03-19 10:05