![]() |
![]() ![]() |
![]() |
![]()
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) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A co ty w tym cookie zapisujesz?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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)
|
|
|
![]()
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ć.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
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. |
|
|
![]()
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. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
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. |
|
|
![]()
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.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.06.2011 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. 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? |
|
|
![]()
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ł?
|
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
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. |
|
|
![]()
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. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Co za bełkot, nie da się czytać. (IMG:style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
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 :/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:01 |