Vraag Hoe schakel je browser Autocomplete uit in webformulierveld / invoertag?


Hoe schakel je uit autocomplete in de grote browsers voor een specifiek input (of form field)?


2253
2017-08-05 16:22


oorsprong


antwoorden:


Firefox 30 negeert autocomplete="off" voor wachtwoorden, die ervoor kiezen om de gebruiker te vragen of het wachtwoord op de client moet worden opgeslagen. Let op het volgende commentaar vanaf 5 mei 2014:

  • De wachtwoordbeheerder altijd geeft aan of het een wachtwoord wil opslaan. Wachtwoorden worden niet opgeslagen zonder toestemming van de gebruiker.
  • Wij zijn de derde browser om deze wijziging te implementeren, na IE en Chrome.

Volgens Mozilla-ontwikkelaarsdocumentatie het formulierelementattribuut autocomplete voorkomt dat formuliergegevens worden gecached in oudere browsers.

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

2212
2017-08-05 16:24



In aanvulling op autocomplete=off, je kunt ook de namen van je formuliervelden laten randomiseren door de code die de pagina genereert, misschien door een sessie-specifieke reeks toe te voegen aan het einde van de naam.

Wanneer het formulier is ingediend, kunt u dat gedeelte verwijderen voordat u het aan de serverzijde verwerkt. Dit zou voorkomen dat de webbrowser context voor uw veld vindt en zou ook kunnen helpen XSRF-aanvallen te voorkomen omdat een aanvaller de veldnamen voor een formulierinzending niet zou kunnen raden.


248
2017-10-20 13:36



De meeste van de belangrijkste browsers en wachtwoordbeheerders (correct, IMHO) negeren nu autocomplete=off.

Waarom? Veel banken en andere 'high security'-websites toegevoegd autocomplete=off naar hun inlogpagina's "voor veiligheidsdoeleinden" maar dit verlaagt feitelijk de veiligheid omdat het ervoor zorgt dat mensen de wachtwoorden op deze hoogbeveiligde sites veranderen om gemakkelijk te onthouden (en dus te kraken) omdat autocomplete is verbroken.

Lang geleden begonnen de meeste wachtwoordmanagers te negeren autocomplete=off, en nu beginnen de browsers hetzelfde te doen voor gebruikersnaam / wachtwoord-ingangen.

Jammer genoeg voegen bugs in de automatisch aanvullen-implementaties gebruikersnaam en / of wachtwoordinformatie in ongeschikte formuliervelden in, waardoor vormvalidatiefouten optreden of, nog erger, per ongeluk gebruikersnamen invoegen in velden die opzettelijk blanco zijn gemaakt door de gebruiker.

Wat moet een webontwikkelaar doen?

  • Als u alle wachtwoordvelden op een pagina zelf kunt houden, is dat een goed begin, want het lijkt erop dat de aanwezigheid van een wachtwoordveld de belangrijkste trigger is voor het automatisch aanvullen van gebruikers / wachtwoorden. Lees anders de onderstaande tips.
  • Safari merkt op dat er 2 wachtwoordvelden zijn en schakelt autocomplete in dit geval uit, ervan uitgaande dat dit een wijzigingswachtwoord moet zijn en geen aanmeldingsformulier. Zorg er dus voor dat u twee wachtwoordvelden (nieuw en bevestig nieuw) gebruikt voor alle vormen waarin u dit toestaat
  • Chrome 34, helaas, zal proberen om velden met gebruiker / pass automatisch te vullen wanneer het een wachtwoordveld ziet. Dit is een behoorlijk slechte bug die hopelijk het gedrag van Safari zal veranderen. Als u dit echter boven aan uw formulier toevoegt, lijkt het automatisch aanvullen van het wachtwoord uit te schakelen:

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

Ik heb IE of Firefox nog niet grondig onderzocht, maar zal het antwoord graag bijwerken als anderen informatie in de opmerkingen hebben.


184
2018-04-23 04:00



Soms zelfs autocomplete = uit zou niet voorkomen dat te vullen in referenties in verkeerde velden, maar geen gebruikers- of bijnaamveld.

Deze oplossing is een aanvulling op het bericht van apinstein over het gedrag van browsers.

repareer browser autofill in alleen-lezen en zet schrijfbaar op focus (klik en tab)

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

Bijwerken: Mobile Safari stelt de cursor in het veld in, maar toont geen virtueel toetsenbord. Nieuwe fix werkt als voorheen, maar verwerkt virtueel toetsenbord:

<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();  }" />

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

// UpdateEnd

Omdat browser automatisch referenties vult in verkeerd tekstveld !?

Ik merk dit vreemde gedrag op in Chrome en Safari, wanneer er wachtwoordvelden zijn dezelfde vorm. Ik vermoed dat de browser op zoek is naar een wachtwoordveld om je opgeslagen gegevens in te voegen. Vervolgens vult het automatisch (alleen maar gissen vanwege observatie) het dichtstbijzijnde tekstachtige invoerveld, dat verschijnt vóór het wachtwoordveld in DOM. Aangezien de browser de laatste instantie is en u deze niet kunt besturen,

Deze readonly-fix hierboven werkte voor mij.


120
2018-06-16 16:04



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

Dit zal werken in Internet Explorer en Mozilla FireFox, het nadeel is dat het niet XHTML-standaard is.


93
2017-08-05 16:27



De oplossing voor Chrome is om toe te voegen autocomplete="new-password" naar het wachtwoord van het invoertype.

Voorbeeld:

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

Chrome zal de gegevens altijd automatisch aanvullen als er een vakje van wordt gevonden Typ je wachtwoord, net genoeg om aan te geven voor die box autocomplete = "new-password".

Dit werkt goed voor mij.

Opmerking: zorg er met F12 voor dat uw wijzigingen van kracht worden, vele malen dat browsers de pagina opslaan in de cache, dit gaf me een slechte indruk dat het niet werkte, maar de browser bracht de wijzigingen niet echt.


57
2017-11-24 17:07



Zoals anderen hebben gezegd, is het antwoord autocomplete="off"

Ik denk echter dat het de moeite waard is om te zeggen waarom het is een goed idee om dit in bepaalde gevallen te gebruiken als enkele antwoorden hierop en duplicaat vragen hebben gesuggereerd dat het beter is om het niet uit te schakelen.

Het stoppen van browsers die creditcardnummers opslaan, mag niet aan de gebruikers worden overgelaten. Te veel gebruikers zullen niet eens beseffen dat het een probleem is.

Het is met name belangrijk om het uit te schakelen voor velden voor creditcardbeveiligingscodes. Als deze pagina luidt als volgt:

"Bewaar nooit de beveiligingscode ... de waarde ervan hangt af van de veronderstelling dat de enige manier om het te leveren het is om het van de fysieke creditcard af te lezen, waarmee wordt bewezen dat de persoon die het levert de kaart daadwerkelijk heeft."

Het probleem is dat als het een openbare computer (cybercafé, bibliotheek, enz.) Is, het eenvoudig is voor andere gebruikers om uw kaartgegevens te stelen, en zelfs op uw eigen computer zou een kwaadwillende website kunnen autocomplete-gegevens stelen.


53
2018-01-23 21:21



Ik zou moeten smeken om te verschillen met de antwoorden die worden gegeven om te voorkomen dat het automatisch aanvullen wordt uitgeschakeld.

Het eerste dat u moet melden is dat automatisch aanvullen niet expliciet wordt uitgeschakeld op velden voor aanmeldingsformulier is een PCI-DSS-fout. Als de lokale machine van een gebruiker wordt gehackt, kan een aanvaller gegevens die automatisch zijn aangevuld, ook triviaal verkrijgen omdat deze in het geheugen wordt opgeslagen.

Er is zeker een argument voor bruikbaarheid, maar er is een zeer fijne balans als het gaat om welke formuliervelden autocomplete moeten hebben uitgeschakeld en welke niet.


29
2017-09-17 00:33



Drie opties: Eerste:

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

Tweede:

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

Derde (javascript code):

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

24
2018-03-19 10:05



Ik heb eindeloze oplossingen geprobeerd en toen vond ik dit:

In plaats van autocomplete="off" gewoon gewoon gebruiken autocomplete="false"

Zo eenvoudig als dat, en het werkt ook als een charme in Google Chrome!


18
2018-05-01 05:56



Gewoon instellen autocomplete="off". Er is een zeer goede reden om dit te doen: U wilt uw eigen autocomplete-functionaliteit bieden!


17
2017-08-05 16:32