Adam Pietrasiewicz

Adam Pietrasiewicz Półliterat, Audytor
dostępności

Temat: Niebezpieczeństwo zmiennej sesyjnej.

Jako początkujący nie mogę się połapać jeszcze w wielu kwestiach, między innymi w tym, jak to jest z tymi zmiennymi globalnymi i niebezpieczeństwem ich stosowania.

Czy to odnosi się do wszystkich zmiennych których zasięg jest większy niż aktualnie wykonywany skrypt?

Mam sobie maleńką aplikacyjkę, na trzech stronkach, w której mam zmienną $_SESSION['Nazwa'] i używam jej na dwóch stronkach z tych trzech. Na drugiej ją wypełniam, na trzeciej ją czytam. Wszystko działa bardzo pięknie, ale nie wiem, czy nie powoduje to jakiegoś niebezpieczeństwa? Jeśli tak, to co należy zrobić, a jeśli nie, to CO w takim razie powoduje niebezpieczeństwo w tym kontekście zmiennych?
Jarek W.

Jarek W. Software Engineer

Temat: Niebezpieczeństwo zmiennej sesyjnej.

Jeśli chodzi o kwestię zagadnień z zakresu bezpieczeństwa aplikacji internetowych, to polecam przeczytać to, co znajduje się tutaj, na stronie Roberta Nowotniaka. Jeśli chodzi o sesje, to jest tu taki rozdział: "Przejmowanie cudzych sesji".

Pozdrawiam.

konto usunięte

Temat: Niebezpieczeństwo zmiennej sesyjnej.

Jeśli chodzi o sesje to najczęstsze ataki to Session Fixation oraz Session Hijacking - resztę można wygoglować.

Jarek, fajny link :-)
Michał Ławicki

Michał Ławicki dostawca zadowolenia

Temat: Niebezpieczeństwo zmiennej sesyjnej.

to może się przydać http://www.beldzio.com/bezpieczenstwo-mechanizmu-sesji

konto usunięte

Temat: Niebezpieczeństwo zmiennej sesyjnej.

Adam Pietrasiewicz:
Jako początkujący nie mogę się połapać jeszcze w wielu kwestiach, między innymi w tym, jak to jest z tymi zmiennymi globalnymi i niebezpieczeństwem ich stosowania.

bardzo dawno nie uzywalem globalnych, bo zasadniczo w praktyce unika sie ich stosowania, ze wzgledu na balagan, ktory generuje ich naduzywanie

w programowaniu obiektowym zasadniczo hermetyzuje sie kod, wiec stosowanie zm. globalnych przeczy tej zasadzie

jesli chodzi o bezp. to musisz weryfikowac wartosc tych zm. i czy odp. Twoim zalozeniom, bo zakladasz, ze nie wiesz skad przyszly, wazna jest tez ich inicjalizacja

jak mowilem, dawno nie uzywalem wiec moglem cos pominac lub wyolbrzymic .. ale raczej jest jak pisze
Czy to odnosi się do wszystkich zmiennych których zasięg jest większy niż aktualnie wykonywany skrypt?

nie ma zmiennych o zasiegu wiekszym niz aktualnie wykonywany skrypt (nawet jesli ladujesz podskrypty, nadal jestes w skrypcie w ktorym zaczales, mozesz jedynie zaglebiac sie w funkcje, klasy, obiekty i metody przez co Twoj zasieg lokalny sie zmienia)

zm. moze byc lokalna, moze byc wlasciwoscia klasy lub obiektu (publiczna, chroniona, prywatna), moze byc parametrem itd, z zalozenia, wszystkie zm. maja jakis zasieg w ktorym sa w ten czy inny sposob dostepne

zm. globalna jest dostepna w calym zasiegu, oczywiscie jesli zaznaczysz, ze to jest globalna
Mam sobie maleńką aplikacyjkę, na trzech stronkach, w której mam zmienną $_SESSION['Nazwa'] i używam jej na dwóch stronkach z tych trzech. Na drugiej ją wypełniam, na trzeciej ją czytam.

To nie jest zm. globalna tylko zm. sesyjna. Znowu $_SESSION to jest zm. super globalna rozni sie tym od globalnej, ze zasadniczo nie musisz deklarowac jej jako globalnej, oraz ze jest jakas niewidoczna dla Ciebie warstwa, ktora inicjalizuje jej wartosci
Wszystko działa bardzo pięknie, ale nie wiem, czy nie powoduje to jakiegoś niebezpieczeństwa? Jeśli tak, to co należy zrobić, a jeśli nie, to CO w takim razie powoduje niebezpieczeństwo w tym kontekście zmiennych?

Niebezpieczenstwo w kontekscie zmiennych moze byc spowodowane inicjalizacja z zewnatrz danej zm. wartoscia niezamierzona/nizaplanowa przez Ciebie.

Czyli .. jesli jakas zm. moze byc ust. z zewnatrz to oznacza to ze powinienes ja validować/weryfikować.

Czy wartosc w tablicy $_SESSION moze byc ustawiona przez kogos innego ? Fakt ze jest inicjalizowana przez warstwe transparentna nie jest jeszcze dowodem, ze moze ja ustawic ktos z zewnatrz.

1. Ty ja inicjalizujesz
2. Jest chowana w tablicy sesji i skrypt umiera
3. Nowy skrypt sie uruchamia (nowa odslona)
5. Sesja jest podnoszona tablica sesji jest inicjalizowana danymi z poprzedniej sesji
6. Masz dostep do Twojej zmiennej w tablicy sesji

Cala wiedza jakiej potrzebujesz na poczatek:

http://pl.php.net/manual/en/
http://pl.php.net/manual/pl/

Bezpieczenstwo ogolnie:

http://www.owasp.org/ - Open Web Application Security Project
Adam Pietrasiewicz

Adam Pietrasiewicz Półliterat, Audytor
dostępności

Temat: Niebezpieczeństwo zmiennej sesyjnej.

Dziękuję dobry człowieku za wyjaśnienia. Dużo tego i długa droga jeszcze przede mną, ale już mam jakieś pomysły dotyczące bezpieczeństwa tego, co robię.

W każdym razie JESTEŚ WIELKI!

konto usunięte

Temat: Niebezpieczeństwo zmiennej sesyjnej.

powodzenia

Następna dyskusja:

wynik z bazy mysql na podst...




Wyślij zaproszenie do