Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [security][prawo] Jak można ukraść komuś ciastko?
Forum PHP.pl > Forum > PHP
Black-Berry
jak w temacie.
pyro
Poprzez ataki XSS i pochodne, wlamujac sie do cudzego komputera lub inne
Black-Berry
można coś na to poradzić w powiązaniu z sesjami oprócz sprawdzania przeglądarki ? Zawsze przecież ktoś może ukraść ciastko i odpalić je na takiej samej przeglądarce.
rybik
- nie trzymac w ciastkach nic, czeo ujawnienie mogłoby być szkodliwe
- walidowac dane od użytkownika
- odświeżać identyfikator sesji co 15 minut
- wyłączyć trans_sid w php
- sprawdzić szczelność systemu plików na hostingach współdzielonych (obowiązkowo własny katalog przechowywania zmiennych sesji + sprawdzić, czy nie da się przez php wyjść poza własny zakres katalogów)
- wyłączyć register_globals lub zastosowac funkcję wyrejestrowywania zmeinnych globalnych

o czyms zapomniałem ? acha -> WALIDOWAĆ DANE OD UŻYTKOWNIKA



p.s.
warto tez walidowac dane od użytkownika winksmiley.jpg
Black-Berry
Cytat(rybik @ 14.09.2008, 23:07:57 ) *
- nie trzymac w ciastkach nic, czeo ujawnienie mogłoby być szkodliwe
To gdzie mam trzymać id sessji smile.gif? (pisze właśnie własną sesję)
marcio
Mozesz trzymac w sesji ale nie rob uwierzytelnienia userow tylko na podstawie tego id
Black-Berry
Cytat(marcio @ 14.09.2008, 23:17:46 ) *
Mozesz trzymac w sesji ale nie rob uwierzytelnienia userow tylko na podstawie tego id
Albo ja albo Ty nie do końca rozumiesz problem worriedsmiley.gif Id sesji jest przecież trzymany w ciastach.

uwieżytelnianie miałem nadzieję obić na podstawie przeglądarki i id sesji. Ale jest problem bo ktoś moze użyć tej samej przeglądarki? Jak jeszcze można rozpoznać usera? Nie chcę stosować IP bo pół polski to neostrada.
dr_bonzo
Nie tworz po prostu tego serwisu, wtedy nikt nikomu nie ukradnie sesji.
Ew. uzywaj tylko SSL.
Black-Berry
Cytat(dr_bonzo @ 14.09.2008, 23:23:22 ) *
Nie tworz po prostu tego serwisu, wtedy nikt nikomu nie ukradnie sesji.
smile.gif Nie chcę pancernych drzwi tylko takie nie otwarte.
rybik
Jeżeli boisz się, że ktos może w 15 minut zwinąć ciastko (sessionid w URL) i wykonac atak ... nie używaj sesji smile.gif, w przeciwnym wypadku:
- odświeżaj ID, tak żeby ID sprzed godziny (komputer pozostawiony w biurze) nie było juz ważne
- dodaj konieczność ponownego wpisania hasła i tokena z obrazka (captcha) przy wykonywaniu waznych czynności administracyjnych
- rozważ opcję drugiego hasła do czynności administracyjnych

Jeżeli masz obsesję, włącz do działania drugi serwer - kontroler (inna domenę), która ustawi drugie ciastko i sprawdzaj oba smile.gif wymaga to jednak odrobiny kombinacji i dobrej komunikacji między serwerami. To tak jakbyś RELANY stan zalogowania rozpoznawał na podstawie poprawnego zalogowania na domenie głównej i ukrytego (fikcyjnego) zalogowania na kontrolerze. Brak walidacji z kontrolera ma powodować natychmiastowe wylogowanie. Swoje poczucie bezpieczeństwa opierasz w tym momencie na założeniu że atakujący nie wie o istnieniu kontrolera kradnąc ciastko oraz że nie jest w stanie przypuścic ataku XSS na serwer który żadnych danych od usera nie przyjmuje.*

* właśnie to wymyśliłem, nie krępujcie się krytykowac biggrin.gif
Black-Berry
No dobra. Już nie przesadzam z tym bezpieczeństwem bo nie robię stron dla banków. (Ty chyba pracujesz w jakimś banku prawda biggrin.gif ?) Zastanawiam się jeszcze nad tym czy jeśli wykonuję jakąś stronę dla administracji państwowej (np. stronę powiatu) to czy musze spełnić jakieś normy bezpieczeństwa. Czy to jest ustalone gdzies przez prawo?
rybik
Nie pracuję w banku tongue.gif

1. Walidacja danych to konieczność, cokolwiek byś nie zrobił brak walidacji wysypie całość. Dobra walidacja = brak ryzyka XSS -> ciastko można ukraśc tylko ręcznie
2. Częsty refresh sesji to szybka dezaktualizacja porzuconego ciastka, dodatkowo względnie krótka żywotnośc sesji to mało czasu na kombinacje dla kradzieja
Black-Berry
Cytat(rybik @ 15.09.2008, 00:17:03 ) *
2. Częsty refresh sesji to szybka dezaktualizacja porzuconego ciastka, dodatkowo względnie krótka żywotnośc sesji to mało czasu na kombinacje dla kradzieja
No ale jednak przy każdej akcji sesja musi się wydłużyć o następne 15 minut.
pyro
najlepiej filtrowac dane pochodzace od uzytkownika juz na samym poczatku pliku ^^
akurczyk
tak się zastanawiam po co ci było ciastko na czas działania przeglądarki skoro mogłeś ustawić cookie na time()+800, czyli 15 minut
Black-Berry
słuszna uwaga biggrin.gif
bełdzio
http://www.beldzio.com/bezpieczenstwo-mechanizmu-sesji.freez sekcja Session fixation
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.