Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 11.04.2014 Ostrzeżenie: (0%)
|
Witam.
Jestem nowy w temacie frameworków, YII jest pierwszym, którego się uczę więc jestem jeszcze lekko zagubiony. Przestudiowałem książke Helionu o YII (nie zachwyciła mnie szczerze mówiąc) ale nadala wielu rzeczy nie rozumiem. Moje pytanie dotyczy bezpieczeństwa takiego skryptu logowania: Model:
Widok
Kontroler:
Ten skrypt jest napisany na podstawie tej właśnie książki (a raczej w większości z niej przepisany z moimi lekkimi zmianami). Chciałbym się dowiedzieć czy tak przygotowany skrypt logowania jest bezpieczny i może być bez obaw zastosowany na stronach opublikowanych online? Bo powiem szczerze, że mam lekkie obawy gdyż wiem ile trzeba sobie zadać trudu pisząc coś takiego w czystym PHP (głównie chodzi o walidację). Przepraszam za tak laickie pytanie ale jestem mocno początkujący a do dyspozycji mam tylko tą książkę i dokumentację, która jest napisana dosyć ciężkim wg mnie językiem. Praktycznie nie ma innych źródeł w języku polskim. Pozdrawiam i z góry dziękuję za odpowiedzi. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 4 Dołączył: 18.01.2012 Ostrzeżenie: (0%)
|
Wszystko fajnie, ale nie hashujesz hasła, albo ja nie widzę. Hasło trzymane w plain tekście to zło. Yii dostarcza fajny helper, który pomaga prawidłowo hashować hasła. Jego użycie jest banalnie proste. W zasadzie sprowadza się do wywołania dwóch metod, na pewno dasz sobie radę. Hasła hashowane metodami tej klasy są hashowane z użyciem mcryptu bodajże, a więc aktualnego standardu polecanego przez samo php.net.
http://www.yiiframework.com/doc/api/1.1/CPasswordHelper Jeżeli chodzi o połączenie modelu Użytkownicy i LoginForm, to jest to niemożliwe. Dla początkujących w tym FW może wydać się to pogmatwane, ale ogólna zasada brzmi, że kiedy zapisujesz dane w bazie używaj ActiveRecord, a kiedy tylko pobierasz a potem porzucasz (np. formularz kontaktu, gdzie pobierasz dane, wysylasz maila i je porzucasz) to FormModel. Sesje na bazie to fajna sprawa, szczególnie na współdzielonych hostingach. Nie będę tu teraz o tym mówił, bo to dość rozległy temat, ale: jeżeli chcesz większe bezpieczeństwo, użyj bazy danych. Ciastko zawsze będzie, bo zawsze jest porównanie id z ciastka == id z bazy || id z ciastka == id na serwerze (gdzie normalnie trzymane są dane sesji). Jeżeli masz jeszcze jakieś pytania, to pisz. PS. Pod żadnym pozorem nie używaj SHA1 jak kolega wyżej oraz nie realizuj hashowania z UserIdentity, rób to w modelu. Ten post edytował NetBeans 14.04.2014, 18:25:44 |
|
|
|
skorpionek93 [inny] YII - logowanie 11.04.2014, 20:29:52
NetBeans Wybrałeś dobry framework, więc korzystaj z jego do... 11.04.2014, 20:51:43
skorpionek93 Witam ponownie.
Po 2 dniach i przejrzeniu niezlicz... 14.04.2014, 17:51:24
Turson Kiedyś napisałem tak
[PHP] pobierz, plaintext ... 14.04.2014, 18:05:50
skorpionek93 Jeśli chodzi o hashowanie to w kilku przykładach b... 14.04.2014, 18:46:54
NetBeans W zasadzie pasowałoby w modelu użytkownika, ale że... 14.04.2014, 19:48:03 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 23:26 |