Jak mogę sprawdzić, czy użytkownicy mojej witryny używają LastPass lub innych menedżerów haseł?

21

Chcę mieć pewność, że osoby odwiedzające moją witrynę będą miały jak najlepsze wrażenia, więc chcę, aby mogły korzystać z LastPass i innych Menedżerów haseł.

Czy jest jakiś sposób na stwierdzenie, czy moi użytkownicy korzystają z jednej z tych wtyczek?

Cgarvey
źródło
19
Jaki masz pomysł na „wsparcie” tych wtyczek…? Jak myślisz, co wymaga wyraźnego wsparcia?
deceze
1
Chodzi o to, że użytkownicy lubią korzystać z narzędzi do autouzupełniania formularzy, a LastPass jest w tym całkiem dobry. Niepokoi mnie, gdy odwiedzam witrynę wymagającą znacznego wypełnienia formularza, np. Strony rezerwacji hoteli, strony linii lotniczych itp., A twórca stron internetowych nie zadał sobie trudu, aby sprawdzić, czy ich formularze mogą zostać wypełnione przez LastPass i podobne narzędzia. Szczerze mówiąc, właśnie zdałem sobie sprawę, że nie było to od razu widoczne w pytaniu, ale bezpieczeństwo nie było główną motywacją tego komentarza.
cgarvey
Myślę, że w idealnym świecie chciałbym móc sprawdzić moje narzędzie analityczne i zobaczyć, ilu moich gości wypełniło formularze ręcznie, a także liczbę używanych i rozszerzenia przeglądarki. Stąd pytanie.
cgarvey 12.04.16

Odpowiedzi:

13

Tak.

Użytkownicy mogą zainstalować LastPass jako wtyczkę do przeglądarki. Dlatego możesz polegać na językach skryptowych po stronie klienta, aby sprawdzić, czy LastPass jest zainstalowany.

Na przykład użycie NavigatorPlugins.pluginspozwala uzyskać PluginArrayobiekt, wyświetlając listę wtyczek zainstalowanych w aplikacji:

function getLastPassVersion() {
  var lastpass = navigator.plugins['LastPass'];
  if (lastpass === undefined) {
    // LastPass is not present
    return undefined;
  }
  return lastpass.version;
}

Należy również pamiętać, że to, o co prosisz, jest powszechnie realizowane i wykorzystywane przez technologie pobierania odcisków palców w przeglądarce .

Billal Begueradj
źródło
Cóż, zawsze wolę mówić rzeczy, których nie powiedziałeś - inaczej wszystko, co powiem, byłoby zbędne, prawda? ;) Niemniej jednak, kiedy zredagowałeś rzeczy, o których mówiłem, moje komentarze stały się dyskusyjne (a przynajmniej wiszą teraz w powietrzu)
Hagen von Eitzen
1
W ogóle nie działa: /
Mardzis
@Mardzis Indeed. MDN informuje, że przeglądarka ogranicza dostęp navigator.pluginslub zwraca fałszywe wyniki w celu ochrony prywatności: developer.mozilla.org/en-US/docs/Web/API/NavigatorPlugins/…
Dai
46

Czy jest jakiś sposób na stwierdzenie, czy moi użytkownicy korzystają z jednej z tych wtyczek i jak najlepiej ją obsługiwać?

Zdecydowanie najlepszym sposobem na wsparcie menedżerów haseł jest użycie normalnych <form>tagów i normalnej formy. Jeśli nie zrobisz nic sprytnego, menedżer haseł wykona swoją pracę.

dotancohen
źródło
8
Aby dodać do tego: Przetestuj za pomocą wbudowanego menedżera haseł w przeglądarce. Jeśli to zadziała, jest wysoce prawdopodobne, że rozwiązania innych firm również będą działać.
Kevin
6
Zgadzam się, ale zauważyłem rosnącą liczbę stron internetowych używających struktur kątowych i innych o bardzo skomplikowanych formularzach, które nie działają z LastPass. Jak na ironię, te strony są zwykle tymi, z których użytkownicy naprawdę chcą korzystać z narzędzi do autouzupełniania formularzy, np. Rezerwacji linii lotniczych itp.
cgarvey
1
Uwaga: niektóre menedżery haseł symulują naciskanie klawiszy zamiast instalowania wtyczki w przeglądarce. Tak więc niekoniecznie jest tak, że jeśli wbudowany menedżer haseł działa, to również on działa. W takich przypadkach zwykle powinieneś upewnić się, że nawigacja po kartach działa poprawnie.
Lie Ryan,
3

Większość z tych menedżerów haseł jest oparta na wtyczkach przeglądarki i działa poprzez wypełnianie pól formularza i uruchamianie przesyłania formularza, tak jakby użytkownik nacisnął przycisk przesyłania, na serwerze wygląda to jak zwykłe przesyłanie formularza, nie ma możliwości stwierdzenia, czy pochodzi on z menedżer haseł.

Chris Rutherfurd
źródło
2

Za pomocą Javascript można wykryć szybkość pisania w polach nazwy użytkownika / hasła. Zmienna częstość sugeruje, że ktoś wpisuje ją ręcznie, a stała szybkość lub nawet brak naciśnięć klawiszy (kopiuj-wklej) oznacza, że ​​ktoś używa menedżera haseł.

André Borie
źródło
Więc jeśli mam LastPass, ale nie może wykryć pola logowania i wpisuję ręcznie, czy nie mam LastPass?
Stephan Bijzitter
Niektórzy menedżerowie haseł kopiują pasty, inni symulują naciśnięcia klawiszy, a także tacy, którzy dostają się do DOM i wypełniają formularz bezpośrednio. Ponadto niektórzy użytkownicy mogą wpisać swoje hasło w notatniku, a następnie skopiować pasty, aby mogli zobaczyć, co wpisują w polu hasła. Wykrywanie menedżerów haseł nie jest takie proste.
Lie Ryan,
2

Aby odpowiedzieć na aktualne pytanie, jednym ze sposobów wykrycia, czy użytkownicy używają Lastpass, jest podanie pewnego rodzaju pola logowania i użycie jQuery lub podobnego, aby sprawdzić, czy Lastpass wstawił „obraz tła”, który wstawia do pól logowania, które może wypełnić automatycznie.

Oto przykład pola wprowadzania wiadomości e-mail, wszystkie elementy w tagu stylu zostały dodane przez Lastpass:

<input type="text" class="form-control" id="inputEmail" placeholder="Email" style="cursor: pointer; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAAXNSR0IArs4c6QAAAPhJREFUOBHlU70KgzAQPlMhEvoQTg6OPoOjT+JWOnRqkUKHgqWP4OQbOPokTk6OTkVULNSLVc62oJmbIdzd95NcuGjX2/3YVI/Ts+t0WLE2ut5xsQ0O+90F6UxFjAI8qNcEGONia08e6MNONYwCS7EQAizLmtGUDEzTBNd1fxsYhjEBnHPQNG3KKTYV34F8ec/zwHEciOMYyrIE3/ehKAqIoggo9inGXKmFXwbyBkmSQJqmUNe15IRhCG3byphitm1/eUzDM4qR0TTNjEixGdAnSi3keS5vSk2UDKqqgizLqB4YzvassiKhGtZ/jDMtLOnHz7TE+yf8BaDZXA509yeBAAAAAElFTkSuQmCC&quot;); background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; background-repeat: no-repeat;" autocomplete="off">

To może nie być najskuteczniejszy sposób na wykrycie, czy użytkownik korzysta z Lastpass, ale na pewno działa :)

Keith M.
źródło
2
Podoba ci się myślenie tego rozwiązania, ale czy nie zakłada, że ​​LastPass może wypełnić przynajmniej jedno pole w formularzu? Witryna, którą odwiedziłem, która skłoniła mnie do zadania tego pytania, używała formularza Angular, a LastPass nie mógł zidentyfikować na nim ani jednego pola. Zdecydowanie przypadek na krawędzi, ale nie ostatni, jak sądzę.
cgarvey 12.04.16