Html - cum să dezactivați completarea automată a browserului în câmpul de formular web

  • Managerul de parole întreabă întotdeauna dacă dorește să salveze parola. Parolele nu sunt salvate fără permisiunea utilizatorului.
  • Suntem al treilea browser pentru implementarea acestei modificări după IE și Chrome.

Conform documentației dezvoltatorului Mozilla, atributul de completare automată a elementului de formular previne stocarea datelor din formular în browserele mai vechi.







În plus față de autocomplete = off, puteți avea și nume de câmpuri de formule care vor fi codificate aleatoriu de codul care generează pagina, probabil prin adăugarea unui șir care aparține sesiunii până la sfârșitul numelor. Când formularul este trimis, puteți să dezactivați această parte înainte de ao procesa pe partea serverului. Acest lucru împiedică browserul să localizeze contextul pentru câmpul dvs. și poate, de asemenea, să prevină atacurile XSRF, deoarece un atacator nu poate ghici numele câmpurilor pentru a trimite formularul.

Majoritatea browserelor majore și managerilor de parole (corect, IMHO) ignoră acum autocomplete = off.

De ce? Multe bănci și alte site-uri cu un grad ridicat de securitate au adăugat autocomplete = în paginile lor de conectare în scopuri de securitate, dar acest fapt reduce siguranța, deoarece obligă oamenii să schimbe parolele pe aceste site-uri de securitate ridicate pentru a fi ușor de reținut , prin urmare, hack) Deoarece completarea automată a fost spartă.

Odată ce, majoritatea managerilor de parole au început să ignore autocomplete = off. iar browserele încep să facă același lucru doar pentru a introduce un nume de utilizator și o parolă.

Din păcate, erorile în implementările de completare automată introduc numele de utilizator și / sau parola în câmpurile de formă greșită, cauzând erori de validare a formularului sau, mai rău, inserând accidental nume de utilizatori în câmpuri care au fost lăsate intenționat de către un utilizator gol.

Ce face un dezvoltator web?

  • Dacă puteți salva singur toate câmpurile de parolă din pagină, acesta este un început excelent, deoarece se pare că prezența câmpului de parolă este declanșatorul principal pentru intrarea automată completă / parolă a utilizatorului. Dacă nu, citiți sfaturile de mai jos.
  • Safari notează că în acest caz există două câmpuri de parolă și în acest caz dezactivează completarea automată, presupunând că aceasta ar trebui să fie forma parolei pentru modificare, și nu formularul de autentificare. Deci, asigurați-vă că utilizați 2 câmpuri de parolă (noi și confirmați altele noi) pentru orice formă în care permiteți

Din păcate, Chrome 34 va încerca să populeze automat câmpurile cu un utilizator / parolă ori de câte ori vede câmpul de parolă. Aceasta este o greșeală destul de proastă, care sper că va schimba comportamentul lui Safari. Cu toate acestea, adăugarea acestuia la partea de sus a formularului pare să dezactiveze parola de completare automată:

Acest lucru va funcționa în IE și FF, dezavantajul este că nu este un standard XHTML.

Uneori, chiar și autocompletarea = nu vă împiedică să completați acreditările în câmpurile greșite, dar nu în câmpul sau porecla utilizatorului.

Aceasta este o soluție în plus față de mesajul lui Apinstein despre comportamentul browserului.

Corectați completarea automată a browserului: readonly și setați funcția writeble pe focus (clic și fila)

Actualizare: Safari Mobile plasează cursorul în câmp, dar nu afișează tastatura virtuală. Noua remediere funcționează ca mai înainte, dar se ocupă de tastatura virtuală:

Deoarece browserul completează automat acreditările în câmpul de text greșit.

Observ acest comportament ciudat în Chrome și Safari când există câmpuri de parolă în același formular. Cred că browserul caută un câmp de parolă pentru a insera acreditările salvate. Apoi se umple automat (presupunând doar din cauza observației) de cel mai apropiat câmp de introducere a textului care apare înaintea câmpului de parolă din DOM. Deoarece browserul este ultima instanță și nu îl puteți controla,

Această remediere numai pentru citire a funcționat pentru mine.

După cum au spus și ceilalți, răspunsul este autocomplete = "off"

Cu toate acestea, cred că merită să spunem de ce este util să folosim în unele cazuri, deoarece unele răspunsuri la aceste întrebări și repetitive sugerează că este mai bine să nu vă întoarceți dacă o dezactivați.

Oprirea browser-elor care stochează numerele cărților de credit nu ar trebui acordată utilizatorilor. Prea mulți utilizatori nu vor ști nici măcar că aceasta este o problemă.

Este deosebit de important să le dezactivați pentru câmpuri pentru codurile de securitate ale cardurilor de credit. Așa cum este menționat în această pagină

"Nu stocați niciodată un cod de securitate." înțelesul său depinde de prezumția că singura modalitate de a le furniza este să o citească dintr-un card de credit fizic, dovedind că persoana care îl furnizează într-adevăr deține cartea ".

Problema este că, dacă acesta este un computer public (o cafenea cibernetică, o bibliotecă etc.), ceilalți utilizatori pot fura cu ușurință datele de pe card și chiar pe mașina proprie un site web rău intenționat poate fura date de completare automată.







Trebuie să le cer să fie diferite cu răspunsurile care spun că pentru a evita dezactivarea auto-finalizare.

Primul lucru pe care trebuie să îl înțelegeți este că umplerea automată, care nu este dezactivată în mod explicit în câmpurile formularului de intrare, este un eșec PCI-DSS. În plus, dacă mașina de utilizator locală este compromisă, datele automate de completare pot fi obținute trivial de către atacator deoarece sunt stocate în cutie.

Desigur, există un argument în favoarea ușurinței utilizării, dar există un echilibru foarte delicat atunci când este vorba despre câmpurile de formă care ar trebui dezactivate prin completarea automată și care nu.

Soluția pentru Chrome este să adăugați autocomplete = "new-password" la parola tipului de intrare.

Chrome întotdeauna completează automat datele dacă găsește un câmp de tip parolă. suficient pentru a specifica pentru acest domeniu autocomplete = "new-password".

Acest lucru funcționează bine pentru mine.

Notă. Asigurați-vă că, odată cu modificările aduse F12, modificările dvs. vor intra în vigoare, de multe ori browserul a salvat pagina în memoria cache, mi-a arătat o impresie proastă că nu funcționează, dar browserul nu a efectuat nicio modificare.

Trei opțiuni: în primul rând:

Atât de simplu și funcționează ca un farmec în Google Chrome!

Doar setați autocomplete = "off". Pentru acest lucru există un motiv foarte bun: doriți să vă furnizați propriile funcții de completare automată!

În legătură cu o notă asociată sau aproape complet opusă - dacă sunteți utilizator al formularului de mai sus și vreți să activați din nou funcția de completare automată, folosiți butonul "memorare parolă" pe această pagină de marcatori. Șterge toate atributele "autocomplete =" off "" din toate formele de pe pagină. Continuați lupta cu o luptă bună!

Cred că autocomplete = off este acceptat în HTML 5.

Întrebați-vă de ce doriți să faceți acest lucru, deși acest lucru poate avea sens în anumite situații, dar nu o faceți doar de dragul lui.

Acest lucru este mai puțin convenabil pentru utilizatori și nici măcar o problemă de securitate în OS X (menționată mai sus de Soren). Dacă vă faceți griji cu privire la persoanele care au parolele lor furate de la distanță - loggerul de tip keystroke poate face acest lucru chiar dacă aplicația dvs. utilizează autcomplete = off.

În calitate de utilizator care dorește ca browser-ul să-și amintească (în cea mai mare parte) informațiile mele, aș fi inconfortabil dacă site-ul dvs. nu și-a amintit de mine.

Am folosit cu adevarat ideea de sasb pentru un site. A fost o cerere de software medical pentru a conduce un cabinet de medic. Cu toate acestea, mulți dintre clienții noștri au fost chirurgi care au folosit numeroase stații de lucru diferite, inclusiv terminale semi-publice. Astfel, au dorit să se asigure că un medic care nu înțelege semnificația parolelor salvate automat sau nu acordă atenție nu poate lăsa în mod accidental informațiile sale de înregistrare ușor accesibile. Bineînțeles, acest lucru se referea la ideea unui browser privat, care începe să apară în IE8, FF3.1, etc. În ciuda acestui fapt, mulți medici sunt forțați să utilizeze browsere vechi în spitale, cu IT care nu se va schimba.

Așadar, am avut o pagină de înregistrare care generează nume ale câmpurilor aleatoare care vor funcționa numai pentru acest mesaj. Da, este mai puțin convenabil, dar este uimitor faptul că utilizatorul nu stochează informații de înregistrare pe terminalele publice.

Nici una dintre soluțiile nu mi-a ajutat în această conversație.

Pur și simplu dezactivați formularul de completare automată și apoi activați-o pentru orice intrare pe care doriți să o funcționeze în formular. De exemplu:

Nu a existat nici un mod standard de a face acest lucru (cred că mozilla și IE încă o susțin), dar mizeria cu așteptările utilizatorilor este, de obicei, o idee proastă.

În cazul în care utilizatorul introduce informațiile despre cartea de credit în formular, atunci permiteți altcuiva să utilizeze acest browser, nu este vorba despre afacerea dvs. :)

Eticheta de formular va dezactiva completarea automată a browserului (care a fost introdusă anterior în acest câmp) din toate câmpurile de introducere din această formă particulară.

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • crom

Utilizați un nume și un cod nonstandard pentru câmpuri, deci în loc de "nume" introduceți "name_". Navigatorii nu vor trata acest lucru ca un câmp de nume. Cea mai bună parte a acestui lucru este că puteți face acest lucru pentru unii, dar nu pentru toate câmpurile și va completa automat unele, dar nu toate câmpurile.

Încercați și ele, dacă doar autocompletarea = "off" nu funcționează:

Aceasta este o problemă de securitate pe care browserele o ignoră acum. Browserele identifică și stochează conținut utilizând numele de intrare, chiar dacă dezvoltatorii consideră că informațiile sunt sensibile și nu ar trebui stocate. Crearea unui nume de intrare diferit de 2 interogări va rezolva problema (dar va fi stocată în memoria cache a browserului și va crește, de asemenea, memoria cache a browserului). Solicitarea utilizatorului de a activa sau dezactiva setările în setările browserului nu este o soluție bună. Problema poate fi rezolvată în backend.

Aici este corecția mea. Abordarea pe care am implementat-o ​​în cadrul meu. Toate elementele de completare automată sunt generate cu o intrare ascunsă după cum urmează:

Serverul procesează post-variabilele după cum urmează:

Valoarea poate fi obținută, ca de obicei

Browserul nu va putea oferi informații din cererea anterioară sau din partea utilizatorilor anteriori.

Totul funcționează ca un farmec, chiar dacă browserele sunt actualizate, vrea să ignore autocompletarea sau nu. Acesta a fost cel mai bun mod de a rezolva această problemă pentru mine.

Puțin târziu în joc. dar tocmai am intrat în această problemă și am încercat câteva accidente, dar asta lucrează pentru mine pe MDN

În unele cazuri, browserul va continua să ofere valori auto-complete, chiar dacă atributul auto-completare este dezactivat. Acest comportament neașteptat poate fi destul de critic pentru dezvoltatori. Un truc care vă forțează să nu terminați - atribuiți un șir aleator atributului de genul:

Nu pot să cred că este încă o problemă până când este raportată. Soluțiile de mai sus nu au funcționat pentru mine, deoarece safari părea să știe când elementul nu a fost afișat sau în spatele scenei, totuși pentru mine a funcționat:

Sper că acest lucru este util pentru cineva!

Adăugând acest lucru în interiorul lucrării

(cel puțin pentru moment):

Adăugarea autocomplete = "off" nu o va reduce.

Modificați atributul type = "search" al intrării de tip = "search".
Google nu aplică autocompletare la intrările cu tipul de căutare.

O poți folosi la intrare.

Puteți dezactiva funcția de completare automată dacă ștergeți eticheta de formular. același lucru mi-a făcut banca și mă întrebam cum au făcut-o. Șterge chiar și o valoare care a fost deja reținută de browser după ce a fost eliminată eticheta.

În momentul de față, cea mai bună sugestie este să utilizați un tip de intrare care este rar autocompletă.

Pentru compatibilitatea cu firefox, utilizați autocomplete obișnuit = 'off'

Puteți pur și simplu pune autocomplete = "off" în câmpurile HTML, cum ar fi următorul cod.







Trimiteți-le prietenilor: