• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Logowanie (po raz n-ty - projekt tabeli/tabel)

Object Storage Arubacloud
0 głosów
163 wizyt
pytanie zadane 19 grudnia 2017 w PHP przez Bartess Gaduła (3,630 p.)
edycja 19 grudnia 2017 przez Bartess

Cześć.
Temat wałkowany nie raz, ale nie udało mi się znaleźć tego, co mnie „dręczy”.
Chciałem zapytać o logowanie i użytkowników, ale pod kątem tabeli w bazie danych.
Niezbędne minimum w takiej tabeli users to 3 pola:
id (AUTO_INCREMENT), login (z kluczem unique), password_hash. ( w sumie id chyba nawet nie jest niezbędne).
Dodatkowo:
Imię i nazwisko (w 1 kolumnie, czy w 2?) Ja bym zrobił w 2,
email,
data_rejestracji (CURRENT_TIMESTAMP),
aktywny. (informacja o tym, czy użytkownik może się logować. Wolę ustawić info, że zablokowany, niż usuwać, by nie stracić informacji użytkowniku, którego id będzie wpisane w jakiejś innej tabeli).
Czy informację o liczbie logowań, dacie ostatniego logowania, udanym logowaniu, zapisywać w tabeli users, czy do tych rzeczy założyć osobną tabelę users_login_history?
Wydaje mi się, że osobna tabela byłaby lepsza, daje całą historię (prób) logowań. Chyba łatwiej też byłoby na podstawie danych z takiej tabeli np. zablokować czasowo użytkownika po np. 3 nieudanych próbach logowania. Co myślicie?
Czy w tabeli users_login_history warto zapisać IP  (wg mnie warto) oraz $_SERVER['HTTP_USER_AGENT']?
W tabeli users_login_history kolumny:
id (AUTO_INCREMENT), user_id, date (CURRENT_TIMESTAMP), IP, user_agent.

Jeszcze jedno sobie wymyśliłem... W tabeli users chciałbym dołożyć kolumnę salt. W tą kolumnę zapisywałbym ciąg np. 20 znaków, który były generowany losowo podczas rejestracji użytkownika. Ten ciąg znaków byłby doklejany do hasła użytkownika przed hashowaniem password_hash($pass_user.$randsalt, PASSWORD_DEFAULT). Czy lepiej robić to przez dodanie losowej soli w $options: password_hash($pass_user, PASSWORD_DEFAULT, $options)?

Co o tym myślicie? czy to już zbędne udziwnianie?

1 odpowiedź

+1 głos
odpowiedź 19 grudnia 2017 przez Schizohatter Nałogowiec (39,600 p.)

Czy informację o liczbie logowań, dacie ostatniego logowania, udanym logowaniu, zapisywać w tabeli users, czy do tych rzeczy założyć osobną tabelę users_login_history?

 Osobną.

Czy w tabeli users_login_history warto zapisać IP  (wg mnie warto) oraz $_SERVER['HTTP_USER_AGENT']?

Warto.

Jeszcze jedno sobie wymyśliłem... W tabeli users chciałbym dołożyć kolumnę salt. W tą kolumnę zapisywałbym ciąg np. 20 znaków, który były generowany losowo podczas rejestracji użytkownika. Ten ciąg znaków byłby doklejany do hasła użytkownika przed hashowaniem password_hash($pass_user.$randsalt, PASSWORD_DEFAULT). Czy lepiej robić to przez dodanie losowej soli w $options: password_hash($pass_user, PASSWORD_DEFAULT, $options)?

słowo klucz: bcrypt i masz sprawę haseł z głowy.

Podobne pytania

0 głosów
0 odpowiedzi 185 wizyt
pytanie zadane 6 marca 2020 w C# przez assassin Gaduła (3,260 p.)
+1 głos
1 odpowiedź 151 wizyt
pytanie zadane 17 września 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
2 odpowiedzi 124 wizyt
pytanie zadane 25 marca 2016 w PHP przez niezalogowany

92,687 zapytań

141,599 odpowiedzi

320,089 komentarzy

62,048 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...