Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesje, jakie metedy najbezpieczniejsze
Avatarus
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


Witam
Stworzyłem prymitywny system logowania opartego na razie tylko o sesje (bez tabel i cookies). Działa ona tak:
na początku każdego pliku który wyświetla stronę (np index.php, news.php, artykul.php) mam funkcje session_start()
Potem jest logowanie. Ściąga dane z formularza (login i hasło), potem jest zapytanie SQL, jeśli znajdzie takiego usera w bazie to ustawia zmienne sesyjne:

  1. <?php
  2. $_SESSION['user']=tu są dane z tabeli
  3. $_SESSION['pass']=tu są dane z tabeli (oczywiście hasło hashowane md5)
  4. $_SESSION['level']=tu są dane z tabeli odnośnie poziomu usera. Czy to user, mod czy admin
  5. ?>


Przy wylogowywaniu jest robione session_destroy()
Czy takie coś jest bezpieczne? Chyba nie. Można przecież jakoś ukraść sesje.
Jak byście wy napisali sprawniejszy (i co ważniejsze) BEZPIECZNIEJSZY system sesji.

Z góry dziękuje na pomoc, naprawdę mi zależy na tym
Pozdrawiam.

Ten post edytował Avatarus 5.02.2008, 12:33:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Avatarus
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


no to ciągniemy temat dalej. Poczytałem to forum i znalazłem info że taka metoda jest dość bezpieczna.
1. po zalogowaniu tworzy się Cookies o jakieś tam nazwie. W treści dajemy jakiś unikany hash np. sha1(time().'nick')
Te dane zapisujemy też do tabeli sesji (id,nick,haslo,unikalny hash,ilosc blędnych logowań)
No i teraz jak ktoś wchodzi na stronie to sprawdzane jest czy jest cookies, jeśli tak to sprawdzane jest czy dane w nim zgadzają się z nickiem i haslem podamy z formularza no i z unikalnym hashem z bazy sesji.
Jeśli nie ma cookie to tworzy się normalna sesja (co tworzy się tez po sprawdzeniu cookies)

No i teraz moje pytanie, czy taka metoda jest bezpieczna? Kolumna "ilosc blednych logowań" eliminuje chyba wszystkie próby ataku typu brute force.
Odnośnie tych hashy to doczytałem jeszcze że samo md5 lub sha1 to za mało. Trzeba kombinować żeby naszego hasła nie można było wyszukać w tęczowych tablicach.
Czy parametr httponly w setcookie() daje decakto większe bezpieczeństwo? Broni tylko przez wyświetleniem go z poziomu JS?
Jednak dalej obawiam się o to
Cytat
session poisoning, session exposure czy session injection. dotyczy to zwłaszcza hostingów współdzielonych.


Czy można tutaj zastosować również session_regenerate_id, to chyba ukróci ataki które są nastawione na kradzież ID sesji...bo dane Id było by ciągle zmieniane.

Co o tym sądzicie?
Go to the top of the page
+Quote Post

Posty w temacie
- Avatarus   Sesje, jakie metedy najbezpieczniejsze   5.02.2008, 10:46:37
- - nowotny   Poszukaj trochę, tu na forum i w google... znajdzi...   5.02.2008, 10:55:13
- - em1X   1) Domyślnie sesja korzysta z Cookie Zaczynając s...   5.02.2008, 11:03:05
|- - sopel   Cytat(em1X @ 5.02.2008, 11:03:05 ) 2)...   5.02.2008, 11:55:01
- - Avatarus   no to ciągniemy temat dalej. Poczytałem to forum i...   5.02.2008, 13:51:04
- - sopel   CytatKolumna "ilosc blednych logowań" el...   5.02.2008, 19:20:11
|- - nowotny   Cytat(sopel @ 5.02.2008, 19:20:11 ) i...   5.02.2008, 20:01:31
- - Avatarus   przeczytałem właśnie PDFa z php.net: http://www.ac...   5.02.2008, 23:29:34
- - ucho   Możesz jeszcze zapamiętywać IP i np UserAgent podc...   6.02.2008, 10:32:45
- - .chudy.   IP może sie zmieniać jeżeli będziesz się łączyć pr...   6.02.2008, 10:46:10
- - Avatarus   no dobra ale mam teraz problem natury logicznej......   6.02.2008, 11:08:56
- - sopel   CytatNo więc tak po tych lekturach (i kilku i...   6.02.2008, 11:16:19
- - specialplan   Osobiscie dane sesji trzymam w bazie danych i ciag...   6.02.2008, 11:23:29
- - Avatarus   Cytathmm, to gdzie je zamierzasz umieścić? w tabel...   6.02.2008, 11:29:27
- - specialplan   Musisz miec unikalny ID na podstawie ktorego porow...   6.02.2008, 11:34:38
- - Avatarus   no dobra ale wytłumaczcie mi czy te session ID to ...   6.02.2008, 12:52:36
- - specialplan   To, co podales, sluzy raczej do ograniczenia przek...   6.02.2008, 13:02:05
- - Avatarus   no czyli tak jak napisałem w wyżej będzie to w peł...   6.02.2008, 13:09:11
- - specialplan   Podmiana ID nie bedzie raczej mozliwa, gdy ID sesj...   6.02.2008, 13:13:50
- - Avatarus   no czyli mogę powoli zacząć zabierać się za pisani...   6.02.2008, 13:23:04
- - bełdzio   to może tak btw http://www.beldzio.com/bezpieczens...   7.02.2008, 10:26:06
- - Avatarus   Bełdzio czytam twój blog Fajnie i zwięźle piszesz...   7.02.2008, 10:32:11
- - specialplan   @Beldzio W zasadzie moja klasa sesji jest zbudowa...   7.02.2008, 10:59:45
|- - bełdzio   Cytat(specialplan @ 7.02.2008, 10:59...   8.02.2008, 12:35:03
- - Jarod   @Avatarus: Mam własną klasę (handler) sesji. Wszys...   7.02.2008, 13:31:45
- - sammael   Jak chcecie uniknąć zapisu SIDa w ciastkach i lin...   7.02.2008, 17:53:55
- - Avatarus   no dobra ale jak ktoś ma neo to co? Szlag trafi je...   7.02.2008, 18:44:18
- - specialplan   Niekoniecznie - chyba, ze w czasie trwania sesji r...   8.02.2008, 10:13:11
- - Avatarus   no właśnie sęk w tym że potrzebuje logowanie na dł...   8.02.2008, 11:23:12
- - specialplan   O, faktycznie jest. No to mielismy bardzo podobny ...   8.02.2008, 12:37:09


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: 27.12.2025 - 06:13