Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Identyfikator sesji a bezpieczenstwo
blasfemia
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2003
Skąd: Radom

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


Czesc.
Zrobilem sobie swoj wlasny mechanizm sesji i uwierzytelniania, z uzyciem bazy danych (MySQL). Gdy ktos chce skorzystac z mojego serwisu musi sie zalogowac, czyli podac nazwe uzytkownika, haslo i nazwe bazy danych z ktorej chce korzystac (to ostatnie to akurat sprawa "tematyki' mojego serwisu). Konta uzytkownikow i ich uprawnienia, a takze dane otwartych sesji sa zapisane w jednej "specjalnej" bazie danych.
Po podaniu odpowiednich danych rozpoczyna sie sesja, w odpowiednich tabelach w tej "specjalnej" bazie jest zapisywana nazwa zalogowanego uzytkownika, numer IP komputera z ktorego sie zalogowal oraz wygenerowany identyfikator, a takze aktualne zmienne sesji. Identyfikator sesji jest przekazywany miedzy skryptami poprzez GET'a, w URL'u. No i tu wlasnie moj problem/pytanie. Czy wedlug Was ta metoda (przekazywania sid'a) jest bezpieczna?
W kazdym skrypcie na samym poczatku pobieram z tablicy $_GET identyfikator sesji z URL'a i przekazuje go do funkcji ktora sprawdza jego "autentycznosc", czyli sprawdza czy w tabeli z danymi otwartych sesji istnieje rekord z danym sid'em a takze sprawdza czy numer IP z ktorego delikwent probuje uruchomic skrypt z podanym sid'em zgadza sie z numerem IP zapisanym w trakcie procesu logowania. Jesli ktos probuje uruchomic skrypt i wklepal recznie "jakos" zdobyty identyfikator sesji, ale numer IP kompa, z ktorego probuje uruchomic skrypt jest inny niz ten zapisany w tabeli o danych "legalnie otwartych" sesji no to ... stosowny komunikacik i koniec.
Czy wedlug Was to zabezpieczenie z numerem IP jest wystarczajace? Nie jestem ekspertem od metod atakow na serwisy www (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blasfemia
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2003
Skąd: Radom

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


Cytat
HUH !
podawanie id w urlu jest bezpieczniejsze ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


No wlasnie to mial byc, wedlug moich zamierzen, temat tej dyskusji czyli bezpieczenstwo/zagrozenia zwiazane z przekazywaniem sid-a w URL-u (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
Obojętnie gdzie by nie było, to i tak szansa że strzelisz numer sesji i trafisz taki który ci coś da jest bardzo małe... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Wklepywania sid-a tak na "chybil trafil" raczej nie traktuje powaznie. Jak powiedziales, prawdopodobienstwo "trafienia" jest naprawde niewielkie.
Realnym zagrozeniem jest natomiast taka sytuacja: uzytkownik A zalogowal sie do serwisu, uzytkownik B "jakos" przechwycil sid-a i chcac namieszac wklepuje go recznie ze swojego kompa. Dlatego pomyslalem o tym zapisywaniu numeru ip. Gdy uzytkownik A loguje sie, do bazy jest zapisywany jego numer ip (razem z identyfikatorem sesji). Gdy uzytkownikA sie wylogowuje to jego sesja sie konczy i jej rekord zostaje usuniety, i wtedy uzytkownik B nic nie zrobi bo jego "przechwycony" sid jest "nieaktualny". Moze on nieszac wtedy gdy zalogowany jest uzytkownik A (z aktywna sesja) Gdy uzytkownik B chce uruchomic jakikolwiek skrypt (z podanym recznie sid-em) to jest sprawdzany numer ip z ktorego probuje to robic i jak sie nie zgadza z tym wpisanym w bazie to go "wywala". I to na razie dziala, poniewaz moj system dziala na razie tylko w sieci lokalnej. W niej moge sobie uzywajac php odczytac numer ip delikwenta (chocby odczytujac go z tablicy $_SERVER, pole "REMOTE_ADDR"). Problem pojawia sie w sytuacji logowania sie z zewnatrz sieci lokalnej. Posluze sie przykladem wspomnianej w poprzednim poscie sieci radiowej na Krakowskim rynku. Nie laczylem sie stamtad nigdy ale podejrzewam, ze koles, ktory sie podepnie do tej sieci, dostaje tymczasowy, dynamicznie przydzielony numer, ktory jest unikalny jedynie w ramach tej sieci radiowej. Na zewnatz tej sieci wszyscy jej uzytkownicy sa widoczni pod jednym numerem ip. I przykladowo jesli wspomniany prezes zaloguje sie do mojego systemu, to drugi pracownik firmy probujacy zalogowac sie z tej sieci nie zostanie wpuszczony bo bedzie mial ten sam numer ip, co wczesniej zalogowany prezes. I to dotyczy wszystkich sieci, podsieci, z ktorych ruch idzie przez proxy, maskarady i inne takie. I dlatego sa takie same numery ip, a czasami php nawet nie potrafi tego numeru odczytac (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- blasfemia   Identyfikator sesji a bezpieczenstwo   11.09.2003, 08:30:03
- - spenalzo   Wydaje mi się że tak, ale pewnym problemem są mode...   11.09.2003, 08:40:21
- - blasfemia   CytatWydaje mi się że tak, ale pewnym problemem są...   11.09.2003, 09:07:08
- - It's_me   mozesz to dwojako zrobic ale: :arrow: przedewszys...   11.09.2003, 09:31:03
- - blasfemia   Yyyyy, zeby nie bylo nieporozumien ... piszac "Zro...   11.09.2003, 09:47:59
- - blasfemia   Cytatkazdy uzytkownik moze sie laczyc z odpowiedni...   11.09.2003, 10:04:32
- - adwol   Cytat:arrow: ciasta odpadaja Dlaczego? Chodzi Ci o...   11.09.2003, 11:45:18
- - Omega   Myslę że niepotrzebnie chcesz się uniezależnic od ...   11.09.2003, 15:31:52
- - blasfemia   No niby racja, ale jak robie cos sam to wiem jak t...   12.09.2003, 06:53:42
- - cagrET   Cytat:arrow: ciasta odpadaja   HUH ! podawan...   13.09.2003, 22:57:48
- - It's_me   istnieje tez POST oraz SSL mozna wszystko zastoso...   14.09.2003, 01:15:19
- - Omega   Obojętnie gdzie by nie było, to i tak szansa że st...   15.09.2003, 14:00:31
- - blasfemia   CytatHUH ! podawanie id w urlu jest bezpieczniejsz...   15.09.2003, 16:25:07
- - adwol   CytatNo wlasnie to mial byc, wedlug moich zamierze...   15.09.2003, 22:27:27
- - Michal P.   Zainteresowal mnie ten temat i czytajac go troszke...   19.11.2003, 21:22:38
- - adwol   CytatNie wiem jak to dziala z maskarada, ale adres...   19.11.2003, 22:02:27
- - gosciu   Cytatdobry algorytm generujący identyfikatory, aby...   20.11.2003, 01:05:46
- - Bakus   Proponuję następujące generowanie SID: <?php /...   20.11.2003, 01:41:41
- - adwol   CytatW przykładach specjalnie zastosowałem decode,...   21.11.2003, 10:09:26
- - Bakus   Niewiem czemu 2^32?? Z kąd te dwa ? Jeżeli na każd...   21.11.2003, 12:03:56
- - DeyV   coś mi sie wydaje, że zamiast kombinować, lepiej w...   21.11.2003, 12:14:11
- - spenalzo   A ja któryś raz z kolei rzucę przykład z książki P...   21.11.2003, 13:43:54
- - adwol   CytatNiewiem czemu 2^32?? Z kąd te dwa ? Jeżeli na...   21.11.2003, 14:15:05
- - Bakus   Macie kurcze racje... Tato podał mi wzór jak to p...   22.11.2003, 03:53:23


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: 3.10.2025 - 09:33