Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [HTML][PHP]COOKIE a wyrażenia regularne, bezpieczeństwo mojej strony www
Astronovi
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


witam,
tak mi przyszło do głowy...

korzystam ze zmiennych zapisanych w COOKIE, a przecież są programy do ich edycji
ba, niektóre przegladarki oferują nawet mozliwość ich edycji beż żadnych updat-ów

to co za problem żeby jakiś haker mi zmienił taką zmienną i wpisał jakieś
wyrażenie regularne, które "rozwali" mi system...

jak to zabezpieczyć?
czy mogę sprawdzić COOKIE?

też za pomocą htmlspecialchars?(IMG:style_emoticons/default/questionmark.gif)

help..... (IMG:style_emoticons/default/co_jest.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A co ty w tym cookie zapisujesz?
Go to the top of the page
+Quote Post
Astronovi
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Cytat(nospor @ 25.10.2011, 14:17:57 ) *
A co ty w tym cookie zapisujesz?


zmienne....

pomagasz?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dokładniej.... jakie zmienne? Jak oczekujesz pomocy to odpowiadaj konkretniej na pytania a nie się głupio pytasz czy pomagam.... Nie, nie pomagam, jestem po prostu strasznie ciekawski i z nudów zadaję durne pytania (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Poczytaj o sesji, w sesji możesz sobie te zmienne przechowywać i potencjalny włamywacz o ile nie będzie miał ID sesji to ci się nie dogrzebie do informacji zapisanych w sesji. A dane są bezpieczne i nie trzeba w żaden sposób tego filtrować, bo wiesz co tam ma się znajdować.
Go to the top of the page
+Quote Post
Astronovi
post
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Cytat(nospor @ 25.10.2011, 14:39:13 ) *
Dokładniej.... jakie zmienne? Jak oczekujesz pomocy to odpowiadaj konkretniej na pytania a nie się głupio pytasz czy pomagam.... Nie, nie pomagam, jestem po prostu strasznie ciekawski i z nudów zadaję durne pytania (IMG:style_emoticons/default/tongue.gif)



właśnie ja oczekuję konkretów...ale spoko.

deklaruję zmienna cookie np.
setcookie('dana', '2');


co za problem, żeby ktoś zmienił to na ciąg ;^&&(#$4+ itp..itp....
zabezpieczam zimenne z POST, GET a tu zostawiam po prostu otwartą furtkę....

wystarczy zrobić if($_COOKIE['dana']!='2') print 'bład';

ma ktoś jakieś inne pomysły?


ps. by_ikar - ok, a obciążenie serwera? ile moge mieć takich zmienych $_SESSION żeby nie przeciążać?

Ten post edytował Astronovi 25.10.2011, 13:52:11
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Chcę ci udzielić konkretów ale by to zrobić sam oczekuje konkretu od ciebie.

Po co te zmienne zapisujesz w ciachach? To jest podstawowe pytanie, na które ciągle nie mam odpowiedzi. Bo na chwilę obecną pomysł z ciachem jest bezsensu, ale może ty wiesz coś czego my nie wiemy.
Go to the top of the page
+Quote Post
by_ikar
post
Post #8





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Kod
ps. by_ikar - ok, a obciążenie serwera? ile moge mieć takich zmienych $_SESSION żeby nie przeciążać?


sesja, to nie ciastko że przechowuje ci tylko jedną wartość (IMG:style_emoticons/default/wink.gif) poczytaj wpierw o sesjach, to zobaczysz że to jest rozwiązanie twojego problemu.
Go to the top of the page
+Quote Post
Astronovi
post
Post #9





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Cytat(nospor @ 25.10.2011, 14:51:23 ) *
Chcę ci udzielić konkretów ale by to zrobić sam oczekuje konkretu od ciebie.

Po co te zmienne zapisujesz w ciachach? To jest podstawowe pytanie, na które ciągle nie mam odpowiedzi. Bo na chwilę obecną pomysł z ciachem jest bezsensu, ale może ty wiesz coś czego my nie wiemy.


nospor, mam Ci skopiować cały kod mojej strony www?
przecież pytanie jest o zabezpieczenie COOKIE a nie do czego mi ono jest potrzebne.

ps. by_ikar.... heh, właśnie czytałem
"cookie mają nad sesjami przewagę.....wymagają znacznie mniej pracy od serwera"


Ten post edytował Astronovi 25.10.2011, 17:39:50
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
przecież pytanie jest o zabezpieczenie COOKIE a nie do czego mi ono jest potrzebne.
Moja ostatnia wypowiedź w tym temacie:
żeby powiedzieć ci jak coś zabezpieczyć, musimy wiedzieć co tam jest i co z tym będzie robione.
Ale widzę Ty wiesz lepiej.
Go to the top of the page
+Quote Post
shinuexx
post
Post #11





Grupa: Zarejestrowani
Postów: 78
Pomógł: 9
Dołączył: 2.02.2011
Skąd: undefined

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


możesz weryfikować po stronie serwera zawartość ciastka, ale nie dostaniesz lepszej odpowiedzi jeśli nie będziemy wiedzieli jak tą zmienną przetwarzasz. i tak na prawdę czy ta weryfikacja jest ci potrzebna. Możesz też szyfrować jej zawartość co utrudnia jej odczytanie.
Go to the top of the page
+Quote Post
Astronovi
post
Post #12





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Cytat(shinuexx @ 26.10.2011, 00:56:24 ) *
możesz weryfikować po stronie serwera zawartość ciastka, ale nie dostaniesz lepszej odpowiedzi jeśli nie będziemy wiedzieli jak tą zmienną przetwarzasz. i tak na prawdę czy ta weryfikacja jest ci potrzebna. Możesz też szyfrować jej zawartość co utrudnia jej odczytanie.


przykład użycia:
if($wartosc == $_COOKIE['dana'])
{
print ' zrób to i tamto';
}


jak zweryfikować takie ciastko po stronie serwera?

czy chodzi o szyfrowanie nazwy i wartości np. za pomocą funkcji crypt, md itp??
czy jakieś inne?
Go to the top of the page
+Quote Post
by_ikar
post
Post #13





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


A ty dalej swoje.. Poczytaj o sesjach, o tym w jaki sposób przechowywać w nich dane i że nawet jeżeli ktoś powiedzmy spreparuje ciastko (będzie miał identyfikator tego ciastka od kogoś innego) to bezpośrednio do tych danych się nie dostanie, jeżeli nigdzie ich wyświetlać nie będziesz. Coś się tych ciastek uczepił?
Go to the top of the page
+Quote Post
konrados
post
Post #14





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


@Astronovi: Ja bym na miejscu przedmówców już stracił cierpliwość. Pytanie brzmi - jakie dane chcesz tam przechowywać, nie możesz odpowiedzieć?

Jeśli np. coś w stylu 'admin_logged_in' = true/false to to nie jest najbłyskotliwszy z pomysłów. Z drugiej strony jeśli np. 'website_background_color' = '#xxxxxx' to nie ma problemu. To tylko przykład. Druga sprawa to ta zapodana przez by_ikar.

Tak więc powiedz w końcu jakie zmienne?

Ten post edytował konrados 26.10.2011, 13:03:08
Go to the top of the page
+Quote Post
Astronovi
post
Post #15





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Tak więc powiedz w końcu jakie zmienne?
...................

a choćby PHPSESSID....
też jest tworzone ciastko.

np. zapamiętuję po logowaniu PHPSESSID aby użytkownik nie musiał się ciągle logować
załóżmy, że się odwołam do tego ciastka i.....



by_ikar: czy ja pytałem o sesje?
pytam: "jak zabezpieczyć ciastko"?(IMG:style_emoticons/default/questionmark.gif) ?

Ten post edytował Astronovi 26.10.2011, 13:16:57
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
pytam: "jak zabezpieczyć ciastko"?
zawiń w pazłotko to nie wyschnie.

Cytat
np. zapamiętuję po logowaniu PHPSESSID aby użytkownik nie musiał się ciągle logować
Ale to automatycznie robi za ciebie sesja i sesja to odczytuje i sesja się martwi czy jest ok czy nie a nie ty.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #17





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


W temacie widzę coś o wyrażeniach regularnych? O co tutaj chodzi?

W cookie możesz trzymać zmienne (dane w relacji klucz=>wartość), problem w tym, że właścicel takiego ciastczka może je dowolnie modyfikować.
Zabezpieczyć cookie można wg. mnie na dwa sposoby:

1. Suma kontrolna:
Po stronie serwera sporządzamy sumę kontrolną całej zawartości tablicy cookie po doklejeniu do niej ciągu znaków znanego tylko serwerowi.
Taką sumę kontrolną umieszczamy w cookie, powiedzmy pod kluczem "chsum".
W ten sposób jeśli zawartość cookie zostanie zmodyfikowana choćby o 1 znak, suma kontrolna będzie nieprawidłowa i będziesz w stanie to małym kosztem wykryć.

2. Pełne szyfrowanie:
Tak jak robi to CodeIgniter:Session.
Czyli cała zawartość sesji szyfrowana jest przy pomocy klucza znanego tylko serwerowi, umieszczana w cookie i każdorazowo (przy każdym połączeniu) rozszyfrowywana.
Koszt takiego rozwiązania jest wyższy niż w 1 punkcie, ale w odróżnieniu od rozwiązania pierwszego, użytkownik nie widzi co zawiera jego cookie/sesja.

Koszt przechowywanai danych w natywnej sesji php jest dramatycznie wysoki, działa ona na zasadzie plików tymczasowych.

Pozdrawiam.
Go to the top of the page
+Quote Post
by_ikar
post
Post #18





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat
by_ikar: czy ja pytałem o sesje?
pytam: "jak zabezpieczyć ciastko"??


Gdybyś w tym samym poście nie wspomniał o tym:

Cytat
np. zapamiętuję po logowaniu PHPSESSID aby użytkownik nie musiał się ciągle logować
załóżmy, że się odwołam do tego ciastka i.....


To dalej ty tylko byś wiedział o co ci chodzi, chociaż wydaje mi się że sam nie rozumiesz tego o co pytasz (IMG:style_emoticons/default/smile.gif)

SID trzymany w cookie jest przecież umieszczany tam przez mechanizm sesji.. nie musi być przez nic parsowany, przecież mechanizm sesji szuka pliku sesji który ma dokładnie taką wartość ciasteczka a nie inną. Jeżeli ktoś sam zmieni tą wartość w ciasteczku, na co tylko będzie chciał, to wtedy nie znajdzie takiej sesji i nic poza tym. Oczywiście chodzi o wbudowany w php mechanizm, bo możesz ten mechanizm samemu sobie napisać i wtedy IMO tylko escapujesz te dane (lub nie, jeżeli używasz chociażby PDO) jeżeli twój mechanizm sesji jest przeniesiony do bazy danych.

Co innego się tyczy tego że możesz trzymać jakieś informacje w ciastku. Powiedzmy oddzielone jakimś znakiem, i są to jakieś zmienne, to wtedy tak, musisz to filtrować i sprawdzać, bo są to dane od użytkownika, a użytkownika traktuj jak potencjalnego włamywacza i wszystko filtruj.

Generalnie zadawaj te pytania jakoś poprawniej, bo póki co nie jestem pewien czy nadal wiem o co ci chodzi.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #19





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Co za bełkot, nie da się czytać. (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Astronovi
post
Post #20





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

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


Cytat(wNogachSpisz @ 26.10.2011, 15:32:23 ) *
W temacie widzę coś o wyrażeniach regularnych? O co tutaj chodzi?

W cookie możesz trzymać zmienne (dane w relacji klucz=>wartość), problem w tym, że właścicel takiego ciastczka może je dowolnie modyfikować.
Zabezpieczyć cookie można wg. mnie na dwa sposoby:

1. Suma kontrolna:
Po stronie serwera sporządzamy sumę kontrolną całej zawartości tablicy cookie po doklejeniu do niej ciągu znaków znanego tylko serwerowi.
Taką sumę kontrolną umieszczamy w cookie, powiedzmy pod kluczem "chsum".
W ten sposób jeśli zawartość cookie zostanie zmodyfikowana choćby o 1 znak, suma kontrolna będzie nieprawidłowa i będziesz w stanie to małym kosztem wykryć.

2. Pełne szyfrowanie:
Tak jak robi to CodeIgniter:Session.
Czyli cała zawartość sesji szyfrowana jest przy pomocy klucza znanego tylko serwerowi, umieszczana w cookie i każdorazowo (przy każdym połączeniu) rozszyfrowywana.
Koszt takiego rozwiązania jest wyższy niż w 1 punkcie, ale w odróżnieniu od rozwiązania pierwszego, użytkownik nie widzi co zawiera jego cookie/sesja.

Koszt przechowywanai danych w natywnej sesji php jest dramatycznie wysoki, działa ona na zasadzie plików tymczasowych.

Pozdrawiam.



dzieki wielkie!
takiej odpowiedzi oczekiwałem :-)
pomogłeś!


ps. reszta Panów (w tym - Moderator?) do .... przedszkola?
sorry Panowe ale na tak proste pytanie nie odpowiedzieć?
czy ja pytałem o coś skomplikowanego? podałem zawiły kod na 1000 linii? proste pytanie
jeden Pisał o sesjach, drugi - pytał o skomplikowane zmienne, trzeci - jeszcze w tym utwierdzał
żal
:/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 22.08.2025 - 15:01