Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Bezpieczeństwo sesji
koxu1996
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

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


Witam. Mam pytanie odnośnie bezpieczeństwa sesji w PHP. Czy użytkownik może je w jakiś sposób przesłać lub zedytować ich zawartość? Czy jeśli w zapytaniach mySQL korzystam z wartości sesji to muszę je filtrować?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Podstawowa zasada - filtruj wszystko co pochodzi od użyszkodnika, kropka
Go to the top of the page
+Quote Post
koxu1996
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

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


No tak ale czy sesje użytkownik może jakoś zedytować?
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Sesje (w domyślnych ustawieniach) zapisywane są w formie plików na serwerze. Uzytkownik WWW nie może więc ich w żaden sposób edytować. Aby edytować dane sesji trzeba by było użyć jakiejś dziury w twojej aplikacji, która pozwalała by na zapisanie do sesji pod jakąś określoną zmienną czegokolwiek, lub mieć dostęp do plików serwera.

Mechanizm sesji z założenia jest bezpieczny o tyle o ile zabezpieczony jest dostęp do samego serwera. Może myli Ci się to z COOKIES, które (ab)user może dowolnie modyfikować. Sesja jest bezpieczniejszym mechanizmem.

Rób tak jak powiedział przedmówca bo mądrze mówi - cokolwiek nie przychodzi od (ab)usera musi być zwalidowane, przefiltrowane i dopiero gdzieś można to wrzucić. smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tylko żebyś źle nie zrozumiał. Sesje w swoim stanie, tak wszystko inne user nie będzie w stanie zmienić. Natomiast sesje te trzeba jakoś przenosić pomiędzy requestami (cookies, local storage, url) a wszystko co jest po stronie użytkownika ten może zmodyfikować. Kojarzę że był uż dosć solidny wątek gdzie nawet sam pisałem. Poszukaj na forum.


--------------------
Go to the top of the page
+Quote Post
amii
post
Post #6





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Cytat(koxu1996 @ 21.01.2013, 11:21:34 ) *
No tak ale czy sesje użytkownik może jakoś zedytować?


Owszem np. poprzez atak typu session poisoning, na który jednak są narażone strony występujące na współdzielonym hostingu (przy złych zabezpieczeniach). O bezpieczeństwie sesji możesz poczytać tutaj: http://www.beldzio.com/bezpieczenstwo-mechanizmu-sesji


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A czy Wy przypadkiem nie przesadzacie? Temat wałkowany niejednokrotnie, a nawet info z przyklejonych się znajdzie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CuteOne
post
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Tak mniej więcej wyglądał kawałek kodu z jakiegoś open sourcowego cmsa
  1. if(!empty($_POST['autor']) AND isset($_POST['tresc']))
  2. {
  3.  
  4. //zapiszemy do sesji, żeby później pole było zawsze wypełnione
  5. $_SESSION['autor'] = $_POST['autor'];
  6.  
  7.  
  8. // gdzieś tam dalej w kodzie...
  9. $zapytanie = mysql_query("UPDATE posty SET tresc = '".$_POST['tresc']."' WHERE autor = '".$_SESSION['autor']."'");
  10.  
  11. }

Jak widać nie trzeba edytować sesji aby nabroić smile.gif

@UP Nie przesadzam... nie jestem ogrodnikiem

Ten post edytował CuteOne 21.01.2013, 13:36:25
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 05:43