Jedną z radości związanych z pracą dla rządowej agencji opieki zdrowotnej jest radzenie sobie z całą paranoją związaną z kontaktem z PHI (chronioną informacją zdrowotną). Nie zrozum mnie źle, jestem za tym, aby zrobić wszystko, co możliwe, aby chronić dane osobowe ludzi (zdrowie, finanse, nawyki związane z surfowaniem itp.), Ale czasami ludzie są trochę zbyt podenerwowani.
Przykład: jeden z naszych klientów stanowych niedawno dowiedział się, że przeglądarka zapewnia przydatną funkcję zapisywania hasła. Wszyscy wiemy, że istnieje już od jakiegoś czasu i jest całkowicie opcjonalny i od użytkownika końcowego zależy, czy będzie to mądra decyzja, czy nie. Jednak w tej chwili panuje zamieszanie i jesteśmy zmuszeni znaleźć sposób, aby wyłączyć tę funkcję dla naszej witryny.
Pytanie : Czy istnieje sposób, aby witryna powiedziała przeglądarce, aby nie oferowała zapamiętywania haseł? Zajmuję się tworzeniem stron internetowych od dłuższego czasu, ale nie wiem, czy wcześniej się z tym spotkałem.
Każda pomoc jest mile widziana.
źródło
Odpowiedzi:
Nie jestem pewien, czy to zadziała we wszystkich przeglądarkach, ale powinieneś spróbować ustawić autocomplete = "off" w formularzu.
Niektóre drobne badania pokazują, że działa to w IE, ale nie pozostawiam żadnych gwarancji;)
@Joseph : Jeśli jest to ścisły wymóg, aby przejść walidację XHTML z rzeczywistym znacznikiem (nie wiem, dlaczego tak się stanie), możesz teoretycznie dodać ten atrybut za pomocą javascript, ale potem użytkownicy z wyłączoną js (prawdopodobnie pomijalna ilość twojej bazy użytkowników lub zero, jeśli witryna wymaga js) nadal będzie mieć zapisane hasła.
Przykład z jQuery:
źródło
autocomplete="off"
dlainput type="password"
pól. msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspxdla wejść, które nie chcą, żeby zapamiętać dane formularza (
username
,password
etc.), jak pokazano poniżej:Testowane na najnowszych wersjach przeglądarek głównych tj
Google Chrome
,Mozilla Firefox
,Microsoft Edge
, itd. I działa jak czar. Mam nadzieję że to pomoże.źródło
Przez jakiś czas zmagałem się z tym problemem, z unikalnym zwrotem problemu. Użytkownicy uprzywilejowani nie mogli mieć dla nich zapisanych haseł, ale zwykli użytkownicy tego potrzebowali. Oznaczało to, że uprzywilejowani użytkownicy musieli zalogować się dwa razy, po raz drugi nie wymuszając zapisanych haseł.
Przy tym wymaganiu standardowa
autocomplete="off"
metoda nie działa we wszystkich przeglądarkach, ponieważ hasło mogło zostać zapisane od pierwszego logowania. Kolega znalazł rozwiązanie, aby zastąpić pole hasła, gdy było ono skupione nowym polem hasła, a następnie skupić się na polu nowego hasła (a następnie podłączyć tę samą procedurę obsługi zdarzeń). To działało (poza tym powodowało nieskończoną pętlę w IE6). Może było na to jakieś wyjście, ale to spowodowało migrenę.Wreszcie próbowałem po prostu podać nazwę użytkownika i hasło poza formularzem. Ku mojemu zaskoczeniu, zadziałało! Działa na IE6 oraz bieżących wersjach Firefox i Chrome na Linux. Nie testowałem go dalej, ale podejrzewam, że działa w większości, jeśli nie we wszystkich przeglądarkach (ale nie zaskoczyłoby mnie, gdyby istniała przeglądarka, która nie dbałaby o to, że nie ma żadnej formy).
Oto przykładowy kod wraz z jQuery, aby go uruchomić:
źródło
Cóż, jest to bardzo stary post, ale nadal podam moje rozwiązanie, które mój zespół starał się osiągnąć od dawna. Właśnie dodaliśmy nowe pole wejściowe = "hasło" w formularzu i zawinęliśmy je w div i ukryliśmy div. Upewnij się, że div znajduje się przed rzeczywistym wprowadzeniem hasła. To działało dla nas i nie dawało żadnej opcji Zapisz hasło
Plunk - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview
HTML:
CSS:
źródło
Możesz uniemożliwić przeglądarce dopasowanie formularzy przez losowe użycie nazwy pola hasła w każdym programie. Następnie przeglądarka widzi hasło do tego samego adresu URL, ale nie może być pewna, że to to samo hasło . Może kontroluje coś innego.
Aktualizacja: należy pamiętać, że powinno to być uzupełnienie korzystania z autouzupełniania lub innych taktyk, a nie zastępowania ich, z powodów wskazanych przez innych.
Pamiętaj też, że uniemożliwi to automatyczne uzupełnianie hasła przez przeglądarkę. Nie zapobiegnie to przechowywaniu hasła na dowolnym poziomie bezpieczeństwa, który wybierze przeglądarka.
źródło
Użyj prawdziwego uwierzytelniania dwuskładnikowego, aby uniknąć jedynej zależności od haseł, które mogą być przechowywane w znacznie większej liczbie miejsc niż pamięć podręczna przeglądarki użytkownika.
źródło
Najczystszym sposobem jest użycie
autocomplete="off"
atrybutu tag, ale Firefox nie przestrzega go poprawnie po zmianie pól za pomocą Tab.Jedynym sposobem, aby to zatrzymać, jest dodanie fałszywego pola ukrytego hasła, które nakłania przeglądarkę do wypełnienia hasła.
Jest to brzydki hack, ponieważ zmieniasz zachowanie przeglądarki, co należy uznać za złą praktykę. Używaj go tylko wtedy, gdy naprawdę go potrzebujesz.
Uwaga: to skutecznie zatrzyma autouzupełnianie hasła, ponieważ FF „zapisze” wartość
#prevent_autofill
(która jest pusta) i spróbuje wypełnić tam zapisane hasła, ponieważ zawsze używa pierwszegotype="password"
wejścia znalezionego w DOM po odpowiedniej „nazwie użytkownika” Wejście.źródło
Przetestowałem to dodawanie autocomplete = "off" w znaczniku formularza we wszystkich głównych przeglądarkach. W rzeczywistości większość ludzi w USA używa IE8 do tej pory.
Zaktualizowano 11 czerwca 2014 r
Wreszcie, poniżej znajduje się rozwiązanie dla wielu przeglądarek wykorzystujące javascript i działa dobrze we wszystkich przeglądarkach.
Musisz usunąć tag „form” w formularzu logowania. Po sprawdzeniu poprawności po stronie klienta umieść te poświadczenia w ukrytej formie i prześlij je.
Dodaj także dwie metody. jeden do sprawdzania poprawności „validateLogin ()”, a drugi do nasłuchiwania wprowadź zdarzenie, a następnie kliknij enter w polu tekstowym / haśle / przycisku „checkAndSubmit ()”. ponieważ teraz formularz logowania nie ma znacznika formularza, więc wprowadź zdarzenie, które tutaj nie działa.
HTML
JavaScript
Powodzenia!!!
źródło
Niezupełnie - jedyne, co możesz realistycznie zrobić, to doradztwo na stronie; być może przed pierwszym zalogowaniem możesz wyświetlić formularz zawierający informacje wskazujące, że nie jest zalecane, aby zezwalały przeglądarce na przechowywanie hasła.
Następnie użytkownik natychmiast zastosuje się do porady, zapisze hasło na kartce samoprzylepnej i przyklei taśmą do swojego monitora.
źródło
To, co robiłem, to połączenie autocomplete = "off" i czyszczenie pól haseł za pomocą javascript / jQuery.
Przykład jQuery:
Korzystając z tej opcji
setTimeout()
, możesz poczekać, aż przeglądarka wypełni pole, zanim je wyczyścisz, w przeciwnym razie przeglądarka zawsze będzie się automatycznie uzupełniać po wyczyszczeniu pola.źródło
jeśli autocomplete = „off” nie działa ... usuń znacznik formularza i użyj zamiast niego znacznika div, a następnie przekaż wartości formularza za pomocą jquery na serwer. To zadziałało dla mnie.
źródło
Ponieważ autocomplete = "off" nie działa w przypadku pól haseł, należy polegać na javascript. Oto proste rozwiązanie oparte na znalezionych tutaj odpowiedziach.
Dodaj atrybut data-password-autocomplete = "off" do pola hasła:
Uwzględnij następujące JS:
To rozwiązanie działa zarówno w Chrome, jak i FF.
źródło
Ludzie sobie sprawę - atrybut „autouzupełniania” działa przez większość czasu, ale użytkownicy zaawansowani mogą obejść go za pomocą bookmarkletu.
Posiadanie przez przeglądarkę haseł faktycznie zwiększa ochronę przed keyloggingiem, więc być może najbezpieczniejszą opcją jest zapisanie haseł w przeglądarce, ale ochrona ich hasłem głównym (przynajmniej w przeglądarce Firefox).
źródło
Mam pracę, która może pomóc.
Możesz zrobić niestandardowy włamanie czcionek. Stwórz niestandardową czcionkę ze wszystkimi znakami, na przykład kropką / okręgiem / gwiazdką. Użyj tego jako niestandardowej czcionki dla swojej witryny. Sprawdź, jak to zrobić w Inkscape: jak stworzyć własną czcionkę
Następnie w formularzu logowania użyj:
Następnie dodaj swój css:
Dość kompatybilny z wieloma przeglądarkami. Wypróbowałem IE6 +, FF, Safari i Chrome. Upewnij się tylko, że konwertowana czcionka oet nie zostanie uszkodzona. Mam nadzieję, że to pomoże?
źródło
Najprostszym sposobem rozwiązania tego problemu jest umieszczenie pól INPUT poza znacznikiem FORM i dodanie dwóch ukrytych pól wewnątrz znacznika FORM. Następnie w detektorze zdarzeń wysyłania, zanim dane formularza zostaną przesłane do serwera, skopiuj wartości z widocznych danych wejściowych do niewidzialnych.
Oto przykład (nie można go tutaj uruchomić, ponieważ akcja formularza nie jest ustawiona na prawdziwy skrypt logowania):
źródło
Moim obejściem js (jquery) jest zmiana typu wprowadzania hasła na tekst po przesłaniu formularza . Hasło może stać się widoczne przez sekundę, więc również przed tym chowam dane wejściowe. Wolałbym tego nie używać do formularzy logowania , ale jest to przydatne (wraz z autocomplete = „off”) na przykład w części administracyjnej strony.
Spróbuj umieścić to w konsoli (z jquery), zanim prześlesz formularz.
Testowane na Chrome 44.0.2403.157 (64-bit).
źródło
Testowałem wiele rozwiązań. Dynamiczna nazwa pola hasła, wiele pól hasła (niewidoczne dla fałszywych), zmiana typu wprowadzania z „tekst” na „hasło”, autouzupełnianie = „wyłączone”, autouzupełnianie = „nowe hasło”, ... ale nic nie rozwiązało przeglądarka.
Aby pozbyć się hasła pamiętaj, w końcu potraktowałem hasło jako pole wejściowe i „rozmazałem” wpisany tekst.
Jest mniej „bezpieczny” niż pole hasła natywnego, ponieważ wybranie wpisanego tekstu spowoduje wyświetlenie go jako zwykłego tekstu, ale hasło nie zostanie zapamiętane. Zależy to również od aktywacji Javascript.
Będziesz oszacować ryzyko użycia poniższej propozycji vs opcji zapamiętywania hasła z nawigatora.
Zapamiętywanie hasła może być zarządzane przez użytkownika (wyłączone dla każdej witryny), ale w przypadku komputera osobistego jest ono w porządku, a nie dla komputera „publicznego” lub współdzielonego.
W moim przypadku chodzi o ERP działający na współużytkowanych komputerach, dlatego wypróbuję poniższe rozwiązanie.
źródło
Markus podniósł świetny punkt. Postanowiłem poszukać
autocomplete
atrybutu i uzyskałem następujące informacje:Muszę więc powiedzieć, że chociaż nie działa w 100% na wszystkich platformach, jest obsługiwany w głównych przeglądarkach, więc jest to świetne rozwiązanie.
źródło
Próbowałem powyżej,
autocomplete="off"
a jednak wszystko udane. jeśli używasz kątowego js, zalecam użycie przycisku i kliknięcia ng.To już ma zaakceptowaną odpowiedź. Dodam to, jeśli ktoś nie może rozwiązać problemu z zaakceptowaną odpowiedzią, może przejść z moim mechanizmem.
Dzięki za pytanie i odpowiedzi.
źródło
enter
lubreturn
, aby przesłać formularz.Jednym ze znanych mi sposobów jest użycie (na przykład) JavaScript do skopiowania wartości z pola hasła przed przesłaniem formularza.
Głównym problemem jest to, że rozwiązanie jest powiązane z JavaScript.
Z drugiej strony, jeśli można go powiązać z JavaScriptem, równie dobrze możesz przesłać hasło po stronie klienta przed wysłaniem żądania do serwera.
źródło
Prawdziwy problem jest znacznie głębszy niż tylko dodawanie atrybutów do kodu HTML - jest to powszechna obawa dotycząca bezpieczeństwa, dlatego ludzie wymyślali klucze sprzętowe i inne szalone rzeczy dla bezpieczeństwa.
Wyobraź sobie, że autocomplete = „off” doskonale działa we wszystkich przeglądarkach. Czy pomogłoby to w bezpieczeństwie? Oczywiście że nie. Użytkownicy zapisują swoje hasła w podręcznikach, na naklejkach przymocowanych do monitora, na których każdy odwiedzający je może je zobaczyć, zapisują je w plikach tekstowych na pulpicie i tak dalej.
Zasadniczo aplikacja internetowa i programista nie ponoszą żadnej odpowiedzialności za bezpieczeństwo użytkowników końcowych. Użytkownicy końcowi mogą się tylko chronić. Idealnie MUSZĄ trzymać wszystkie hasła w głowie i korzystać z funkcji resetowania hasła (lub skontaktować się z administratorem) na wypadek, gdyby zapomnieli. W przeciwnym razie zawsze będzie ryzyko, że hasło będzie w jakiś sposób widoczne i skradzione.
Więc albo masz jakąś szaloną politykę bezpieczeństwa z kluczami sprzętowymi (np. Niektóre banki oferują bankowość internetową, która zasadniczo wykorzystuje uwierzytelnianie dwuskładnikowe) lub BEZ BEZPIECZEŃSTWA w zasadzie. Oczywiście jest to nieco przesadzone. Ważne jest, aby zrozumieć, przed czym próbujesz chronić:
W tym konkretnym poście widzę niewystarczające wymagania wobec programisty, których nigdy nie będzie w stanie rozwiązać ze względu na charakter problemu - bezpieczeństwo użytkownika końcowego. Moim subiektywnym punktem jest to, że deweloper powinien zasadniczo powiedzieć NIE i zwracać uwagę na problem z wymaganiami, zamiast marnować czas na takie zadania. Nie oznacza to absolutnie większego bezpieczeństwa systemu, a raczej prowadzi do skrzynek z naklejkami na monitorach. Niestety, niektórzy szefowie słyszą tylko to, co chcą usłyszeć. Jednak gdybym był tobą, spróbowałbym wyjaśnić, skąd bierze się faktyczny problem, a to autouzupełnianie = „wyłączone” nie rozwiązałoby go, chyba że zmusi użytkowników do zachowania wszystkich haseł wyłącznie w ich głowie! Jego twórca nie może całkowicie chronić użytkowników,
źródło
W obliczu tego samego problemu HIPAA i znalezienia stosunkowo łatwego rozwiązania,
Utwórz ukryte pole hasła z nazwą pola jako tablicą.
Użyj tej samej tablicy dla rzeczywistego pola hasła.
Przeglądarka (Chrome) może wyświetlić monit o „Zapisz hasło”, ale bez względu na to, czy użytkownik wybierze opcję Zapisz, następnym razem, gdy się zaloguje, hasło automatycznie wypełni pole ukrytego hasła, czyli zerowe miejsce w tablicy, pozostawiając pierwsze miejsce puste.
Próbowałem zdefiniować tablicę, na przykład „hasło [część 2]”, ale wciąż ją pamiętam. Myślę, że wyrzuca to, jeśli jest to nieindeksowana tablica, ponieważ nie ma innego wyjścia, jak upuścić ją na pierwszym miejscu.
Następnie używasz wybranego języka programowania, aby uzyskać dostęp do tablicy, na przykład PHP,
źródło
Ponieważ większość
autocomplete
sugestii, w tym zaakceptowana odpowiedź, nie działa w dzisiejszych przeglądarkach internetowych (tzn. Ignorują menedżer haseł przeglądarki internetowejautocomplete
), nowszym rozwiązaniem jest zamiana międzypassword
itext
typów i sprawiają, że kolor tła dopasować kolor tekstu, gdy pole to zwykłe pole tekstowe, które nadal ukrywa hasło, będąc prawdziwym polem hasła, gdy użytkownik (lub program taki jak KeePass) wprowadza hasło. Przeglądarki nie proszą o zapisanie haseł przechowywanych w zwykłych polach tekstowych.Zaletą tego podejścia jest to, że umożliwia stopniowe ulepszanie i dlatego nie wymaga Javascript, aby pole działało jak normalne pole hasła (możesz również zacząć od zwykłego pola tekstowego i zastosować to samo podejście, ale tak naprawdę nie jest to HIPAA Zgodny z PHI / PII). To podejście nie zależy również od ukrytych formularzy / pól, które niekoniecznie muszą być wysłane na serwer (ponieważ są ukryte), a niektóre z tych sztuczek również nie działają w kilku nowoczesnych przeglądarkach.
Wtyczka jQuery:
https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js
Odpowiedni kod źródłowy z powyższego linku:
Próbny:
https://barebonescms.com/demos/admin_pack/admin.php
Kliknij „Dodaj wpis” w menu, a następnie przewiń w dół strony do „Moduł: Zatrzymaj Menedżera haseł”.
Oświadczenie: Chociaż takie podejście działa dla osób widzących, mogą występować problemy z oprogramowaniem do odczytu ekranu. Na przykład czytnik ekranu może odczytać hasło użytkownika na głos, ponieważ widzi zwykłe pole tekstowe. Mogą również wystąpić inne nieprzewidziane konsekwencje korzystania z powyższej wtyczki. Zmiana wbudowanej funkcji przeglądarki internetowej powinna być wykonywana oszczędnie poprzez testowanie szerokiej gamy warunków i przypadków brzegowych.
źródło
Witryna informuje przeglądarkę, że jest to hasło za pomocą
<input type="password">
. Więc jeśli ty trzeba to zrobić z perspektywy strony wtedy trzeba by zmienić. (Oczywiście nie polecam tego).Najlepszym rozwiązaniem byłoby skonfigurowanie przeglądarki przez użytkownika, aby nie zapamiętywała haseł.
źródło
Jeśli nie chcesz ufać flagom autouzupełniania, możesz upewnić się, że użytkownik wpisze w polu przy użyciu zdarzenia onchange. Poniższy kod jest prostym formularzem HTML. Ukryty element formularza password_edited zaczyna się od zera. Po zmianie wartości hasła JavaScript u góry (funkcja pw_edited) zmienia wartość na 1. Po naciśnięciu przycisku sprawdza on tutaj kod centrum wartości przed przesłaniem formularza . W ten sposób, nawet jeśli przeglądarka ignoruje cię i automatycznie wypełnia pole, użytkownik nie może przejść do strony logowania bez wpisania pola hasła. Upewnij się również, że pole hasła jest puste, gdy ustawiony jest fokus. W przeciwnym razie możesz dodać postać na końcu, a następnie wrócić i usunąć ją, aby oszukać system. Zalecam dodatkowo dodanie do hasła autocomplete = "off", ale ten przykład pokazuje, jak działa kod zapasowy.
źródło
autocomplete = „off” nie działa w celu wyłączenia menedżera haseł w Firefoksie 31 i najprawdopodobniej nie w niektórych wcześniejszych wersjach.
Zapoznaj się z dyskusją na ten temat w Mozilli: https://bugzilla.mozilla.org/show_bug.cgi?id=956906
Chcieliśmy użyć drugiego pola hasła, aby wprowadzić hasło jednorazowe wygenerowane przez token. Teraz używamy wprowadzania tekstu zamiast hasła. :-(
źródło
Otrzymałem podobne zadanie, aby wyłączyć automatyczne uzupełnianie nazwy logowania i haseł przez przeglądarkę, po wielu próbach i błędach uznałem poniższe rozwiązanie za optymalne. Po prostu dodaj poniższe elementy sterujące przed oryginalnymi elementami sterującymi.
Działa to dobrze dla IE11 i Chrome 44.0.2403.107
źródło
autocomplete = „off” działa w przypadku większości nowoczesnych przeglądarek, ale inną metodą, którą zastosowałem, która z powodzeniem działała z Epiphany (przeglądarką wspieraną przez WebKit dla GNOME) jest przechowywanie losowo generowanego prefiksu w stanie sesji (lub ukrytego pola, zdarzyło mi się mieć odpowiednia zmienna już w stanie sesji) i użyj jej do zmiany nazw pól. Święto Trzech Króli wciąż chce zapisać hasło, ale wracając do formularza, nie wypełni pól.
źródło
Nie miałem żadnych problemów z użyciem tej metody:
Użyj autocomplete = "off", dodaj ukryte pole hasła, a następnie kolejne nie ukryte. Przeglądarka próbuje automatycznie uzupełnić ukryty, jeśli nie przestrzega autouzupełniania = "wyłączony"
źródło
Innym rozwiązaniem jest uczynienie POST przy użyciu ukrytej formy, w której wszystkie dane wejściowe są ukryte. Widoczny formularz użyje wprowadzania typu „hasło”. Ten ostatni formularz nigdy nie zostanie przesłany, więc przeglądarka nie może przechwytywać operacji logowania.
źródło