Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]System Autoryzacji - wasze najlepsze spodoby
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Witam

Potrzebuje zrobić system autoryzacji. Chciałem się was zapytać jakie są najlepsze sposoby, jak najlepiej się zabezpieczyć przed możliwymi włamami, gdzie i jak przetrzymywać dane ze taki i taki user jest zalogowany?
Interesują mnie tylko najlepsze/najbezpieczniejsze rozwiązania.

Liczę na waszą kreatywność.

Pozdrawiam
Chmura

EDIT
Dotychczas korzystałem z link dziś nie wydaje mi się to najlepszym rozwiązaniem...

Ten post edytował b_chmura 11.09.2007, 19:15:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
legorek
post
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


O przepraszam, mając hash masz spore szanse odzyskania hasła. Poczytajcie o tęczowych tablicach. W internecie są też strony typu http://md5.rednoize.com/ które zawierają 50 000 000 najpopularniejszych haseł i hashy. Więc to nie jest takie trudne. Najlepszą obroną jest solenie hashowanych stringów.

Ale to była taka mała dygresja.

Wracając do tematu. Najlepsze są rozwiązania najprostsze.

Przy rejestracji zapisujesz w bazie: id, login, hash hasła.
Prz próbie zalogowania robisz: SELECT * FROM user WHERE `login`='$login' AND `pass`=MD5('$pass');
Jeśli to zapytanie zwróci ilość rekordów różną od 1 to znaczy, że coś jest nie tak: nie ma usera, złe hasło etc.
Jeśli wszystko jest OK, apisujemy do sesji np id i login. Nie ma sensu niczego więcej, chyba że jest to dla Ciebie wygodne.
Teraz, żeby sprawdzić czy user jest zalogowany sprawdzamy czy te dane istnieją w sesji.
Aby wylogować usera usuwamy jest z sesji.

Najsłabszym ogniwem tego rozwiązania jest zapytanie do bazy, mamy tu dane które pochodzą od użytkownika. Dlatego najaważniejsz rzeczą jest taka konfiguracja serwera i fitlrowanie zapytań, aby uniemożliwić SQL injection.

To wszystko, nie ma sposobu, żeby oszukać taki system jeśli jest dobrze zaprojektowany.

Istnieją jeszcze dwa niebezpieczeństwa, jednemu możesz zapobiec, drugiemu możesz tylko próbować:
1) Zła konfiguracja serwera, która pozwoliłaby w jakiś sposób uzyskać atakującemu do katalogu z sesjami (czy do bazy z sesjami, jeśli masz własny mechanizm obsługi sesji) Ale szczerze wątpie żeby istniał tak lamowaty admin serwera (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
2) Zdobycie przez atakującego identyfikatora sesji ofiary. To już poważniejszy problem, bo atakujący może działać na koncie ofiary. Musisz tak przygotować swój serwis, aby nie dało się dokonać Code Insertion. (konkretnie chodzi o wstrzyknięcie javascriptu lub innego języka skryptowego który pozwala na dostęp do ciasteczek) Ale to już jest temat rzeka, bo nawet największe serwisy sobie z tym nie zawsze radzą.

Pozdrawiam!
Go to the top of the page
+Quote Post

Posty w temacie
- b_chmura   [PHP]System Autoryzacji - wasze najlepsze spodoby   11.09.2007, 19:14:46
- - Fixus   hmm na co powinno się zwrócić uwagę: 1. hashowanie...   11.09.2007, 20:27:34
- - chiken   co do przechowywania danych, to przetrzymuje je w ...   12.09.2007, 14:19:17
|- - Prph   Cytat(chiken @ 12.09.2007, 13:19:17 )...   12.09.2007, 15:08:12
- - NuLL   Przechowywanie hasla to czysta glupota bo kto go p...   12.09.2007, 15:24:03
- - qqrq   Ja bym jednak za każdym wejściem na stronę sprawdz...   12.09.2007, 17:25:49
- - b_chmura   a jest taka możliwość żeby ktoś się podszył pod ja...   12.09.2007, 17:31:26
- - qqrq   No właśnie można, aczkolwiek nie jest to takie pro...   12.09.2007, 17:59:49
|- - Prph   Cytat(qqrq @ 12.09.2007, 16:59:49 ) N...   12.09.2007, 22:59:04
- - b_chmura   tak mi się wydawało dlatego czekam na dalsze suges...   12.09.2007, 18:10:37
- - qqrq   Własny hash? Przecież masz md5. Hasha nie odczytas...   12.09.2007, 18:14:25
- - b_chmura   szczerze sie przyznam ze nie znam dokładnej defini...   12.09.2007, 18:28:09
- - qqrq   Rozumiem o co Ci chodzi, ale weź pod uwagę to, że ...   12.09.2007, 19:34:58
- - b_chmura   to nie zabije bazy? jak jej przyjdzie hashowac wsz...   12.09.2007, 19:41:12
- - legorek   O przepraszam, mając hash masz spore szanse odzysk...   12.09.2007, 20:24:10
- - qqrq   legorek => No tak, ja mówiłem o teorii, czyli o...   12.09.2007, 20:45:31
- - qqrq   W tym przypadku wszystko jedno, chodzi o to, żebyś...   13.09.2007, 00:50:38
- - chiken   A wiec dlaczego za kazdym razem sprawdzam czy dana...   13.09.2007, 10:40:26
- - Sedziwoj   Sesja ma dwa czasy życia, jeden pomiędzy odświeżen...   13.09.2007, 11:21:37
- - qqrq   No cóż, temat rzeka, jak widać... W gruncie rzeczy...   13.09.2007, 12:38:33
- - marcini82   Cytat2) Zdobycie przez atakującego identyfikatora ...   13.09.2007, 12:52:06
- - qqrq   Patrz mój poprzedni post. W PEAR::Auth są chyba ws...   13.09.2007, 13:00:20
- - marcini82   Moze i sa, ale wykorzystanie PEAR::Auth w jakiejs ...   13.09.2007, 13:43:18
- - Fixus   @marcini82 - korzystajac z twojego pomyslu i idac ...   13.09.2007, 14:27:33
- - marcini82   No to juz zalezy od tego, czy korzystasz z tablicy...   13.09.2007, 17:44:37
|- - Sedziwoj   Cytat(marcini82 @ 13.09.2007, 18:44:3...   13.09.2007, 19:13:20
- - b_chmura   Czyli tak: Gdy użytkownik się loguje jego login o...   13.09.2007, 19:02:12
- - marcini82   @Sedziwoj No moze to nie jest jakas magia, ale w ...   13.09.2007, 20:36:21
- - qqrq   Zgadzam się z kolegą wyżej co do możliwego zminima...   14.09.2007, 06:16:32
- - radex_p   nie wiem czy to już było bo nie przeczytałem całeg...   14.09.2007, 12:50:36
- - Blodo   Pamietajcie tylko ze jesli chodzi o dane sesyjne w...   14.09.2007, 15:07:39
- - Nattfarinn   Właściwie, ja w zmiennych sesyjnych (umi...   19.09.2007, 20:50:22


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 06:31