Jak mogę bezpiecznie wdrożyć funkcję logowania bez hasła?

10

Właśnie opublikowałem nową wtyczkę: No More Passwords

Obecnie mam tag beta, ponieważ logowanie do platformy to delikatny problem i nie chcę wypuszczać czegoś, co może mieć luki w zabezpieczeniach. Oto moje zapytanie:

Czy jest bezpieczny?

Wykonałem następujące czynności, aby zapewnić bezpieczeństwo:

  1. Nazwa użytkownika / hasło nigdy nie są przekazywane w tę iz powrotem, tylko unikatowy skrót.
  2. Hash jest usuwany z bazy danych, gdy jest używana, nie można użyć starych skrótów, chyba że baza danych zostanie zhakowana, ale wtedy masz większe problemy.
  3. Wszystkie zapytania bazy danych hash zostały pominięte, aby zapobiec atakom XSS.
  4. nonce dodane do wywołania ajax.
  5. dodano nonce i potwierdzenie na urządzeniu mobilnym, aby zapobiec atakowi CSRF.

Tutaj mam pełny opis tego, jak to działa .

Następna wersja Mam nadzieję wdrożyć oauth za pośrednictwem Twittera, ponieważ iOS działa teraz w ...

Z góry dziękuję za Twój wkład.

Edycja: Zdecydowałem, że jako dodatkową warstwę dodam sprawdzenie sessionID, aby upewnić się, że ta sama przeglądarka loguje się jak przeglądarka, która zainicjowała logowanie kodem QR.

jackreichert
źródło

Odpowiedzi:

5

(Jestem frajerem alternatywnych schematów logowania)

Trochę nieporozumień dotyczących ucieczki DB:

  • Używasz mysql_real_escape_string()bezpośrednio. Preferowaną metodą jest użycie $wpdb->prepare()lub esc_sql().

  • Zapytania UPDATE najlepiej obsłużyć $wpdb->update()

scribu
źródło
Zaktualizowałem wtyczkę, aby ją uwzględnić. Dzięki za wskazówkę.
jackreichert
5

Myślę, że to świetny pomysł, ale jak zawsze największą słabością jest czynnik ludzki, w tym przypadku sam telefon zostałby zgubiony, skradziony lub przechwycony. Czy zastanawiałeś się nad dodaniem uwierzytelniania dwuwarstwowego, takiego jak kod weryfikacyjny SMS (np. Gmail, itp.). Lub łatwiejszą alternatywą byłoby ciasteczko + tajne słowo.

Czy możesz również wspomnieć, jaki algorytm generuje kod QR na stronie o?

Wyck
źródło
Więc wtyczka polega na tym, że jesteś zalogowany w telefonie do pracy. Ryzyko związane z utratą telefonu jest mniej więcej takie samo, jak pozostawienie komputera zalogowanego na stronie wp. Korzystam z interfejsu Google Chart API do generowania kodu qr.
jackreichert
3
Pomyślałem, że dobrym pomysłem byłoby dodanie kolejnej warstwy, która nie przeszkadzałaby użytkownikowi, ponieważ telefony zostały skradzione / zgubiły się znacznie bardziej niż komputery osobiste, a na komputerze nadal trzeba znać nazwę użytkownika / hasło.
Wyck