Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+PDO][MySQL]Pierwsza strona www.
Forum PHP.pl > Forum > Przedszkole
ZaXaZ
Pytanie nietypowe, nie chce koła chce dętkę.

Od paru dni myślę nad podniesieniem mojego poziomu php na wyższy, jako że nadal jestem początkującym chciałbym teraz zrobić system logowania i rejesracji jednak problemem jest dla mnie za mała wiedza o sesjach.
Nie znalazłem dostatecznych źródeł informacji na temat sesji (według mnie), a pytanie na którym się zatrzymuję;

Jak można przechowywać sesję przechodząc na inną stronę?

oraz tak jak pisałem na samej górze, nie chce dostać całego systemu logowania i rejestracji tylko sam szkielet jak to ma mniej więcej wyglądać (chodzi tylko o sesje) oraz ewentualne (miło by było) pokazanie np. "tu hashuj hasła", "tu sprawdź czy już istnieję", "Tu dane dla zalogowanego" itd. (Jako że jest to forum "Przedszkole" a ja będę to pisał pierwszy raz)

mam nadzieję że dobrze zadałem pytanie, jakby ktoś nie zrozumiał to proszę komentować.

edit:
ps. będę pisał to z pomocą PDO bo tylko tego się uczyłem więc prosiłbym nie zamykać tematu bo może będę miał pytania w przyszłości jakby coś nie wyszło.

edit 2 - Jeszcze jedno:
W bazie wystarczy `id`, `nick`, `haslo` czy jeszcze coś będzie mi potrzebne?
Turson
Co do samego skryptu logowania i rejestracji napisałem takowy kiedyś na swoim blogu.
#edit, w artykule napisałem co nieco o sesji smile.gif

Cytat
Jak można przechowywać sesję przechodząc na inną stronę?

W każdym pliku, w którym sesja ma być aktywna, trzeba dać na wstępie session_start(). Tym sposobem sesja sobie istnieje w tle przechodząc między stronami.

Cytat
W bazie wystarczy `id`, `nick`, `haslo` czy jeszcze coś będzie mi potrzebne?

Wystarczy, to absolutne minimum. W zależności od upodobań można dodać np. adres e-mail, datę rejestracji, typ konta (admin/użytkownik itd.), ostatnie logowanie etc.
ZaXaZ
Tak jak pisałem mogę mieć pytania i mam już pierwsze

--BEZPIECZEŃSTWO--
Czy: Jestem bezpieczny w tym fragmencie kodu?
  1. $gg = substr((int)$_POST['gg'],0,9);
  2. $nick = substr(preg_replace('/[^0-9A-Za-z]/', '', $_POST['nick']),0,32);
  3. $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

Jak zabezpieczyć hasło? addslashes może chyba być nieprawidłowe skoro chciałbym udostępnić wszystkie znaki możliwe
Turson
Zależy co chcesz z tymi danymi zrobić.
ZaXaZ
Cytat(Turson @ 20.04.2014, 12:59:10 ) *
Zależy co chcesz z tymi danymi zrobić.


* Przechowywać w bazie (przy rejestracjj), * Przy logowaniu sprawdzać poprawność danych (czy użytkownik istnieje itd.),
ps. email ucinany będzie po 350 znakach bo ponoć najdłuższy jaki był miał 345..,
oraz hasło przycinane po 50 znaku;
Turson
Jak już bindujesz dane w PDO to nie musisz się bawić w rzutowanie (jeżeli chodzi tu o zapytanie)
Crozin
1. Najpierw sprawdzaj poprawność przesłanych przez użytkownika danych, dopiero później baw się w ich filtrowanie. O co chodzi (na przykładzie numeru GG)? Powiedzmy, że podałem swój numer GG jako 123e567890 - jest on nieprawidłowy (zawiera znak "e" oraz jest za długi). W tej chwili Twój kod go przepuści, a w bazie danych zostaną zapisane głupoty, a konkretnie wartość "123". Tak więc najpierw powinieneś sprawdzić czy dane są prawidłowe, tj. w tym przypadku sprawdzić czy masz w zmiennej tekst, składający się z samych cyfr, gdzie sam tekst jest niedłuższy niż 9 znaków:
  1. if (!ctype_digit($gg) || strlen($gg) > 9) {
  2. // nieprawidłowy nr GG
  3. }
A dopiero później zrobić ewentualne rzutowanie na INT.
Analogicznie powinieneś postąpić przy nicku oraz emailu.
2. Akurat hasło spokojnie może mieć więcej niż 50 znaków.
ZaXaZ
Cytat(Turson @ 20.04.2014, 13:08:18 ) *
Jak już bindujesz dane w PDO to nie musisz się bawić w rzutowanie


No fakt, zapomniałem o tym... chcialem samym query, zamiast np. prepare-execute lub tak jak pisales,
jednak jak zrobię bindParam(':nick', $nick); itd to jestem bezpieczny? (głównie chodzi mi o sql injection chyba że jeszcze coś tu jest)
Crozin
Tak, jeżeli używasz bindowania nie musisz już obawiać się SQLInjection (przynajmniej w zakresie danych przesłanych tymi parametrami).
Xart
Cytat(ZaXaZ @ 20.04.2014, 12:52:40 ) *
Jak zabezpieczyć hasło? addslashes może chyba być nieprawidłowe skoro chciałbym udostępnić wszystkie znaki możliwe


Jakąś funkcją szyfrującą np:
$haslo = md5($haslo);
ZaXaZ
Cytat(Xart @ 20.04.2014, 14:03:34 ) *
Jakąś funkcją szyfrującą np:
$haslo = md5($haslo);


być może źle pytanie zadałem ale odpowiedź już uzyskałem trochę wyżej nad tobą (co do bindowania - bo o to mi chodziło),
a hasła będę miał "przerabiane/hashowane" przez hash_hmac bo md5 już dawno złamane, czyt. rainbow tables.
viking
Zdajesz sobie sprawę że w przypadku hash_hmac gdy ktoś zdobędzie klucz to wszystkie twoje hasła są nic nie warte?
ZaXaZ
Cytat(viking @ 20.04.2014, 15:10:49 ) *
Zdajesz sobie sprawę że w przypadku hash_hmac gdy ktoś zdobędzie klucz to wszystkie twoje hasła są nic nie warte?


tzn.?, mógłbyś oświecić mnie? - bo nie wiem o co chodzi.

edit:
$pass = hash_hmac('sha512', $_POST['pass'], 'sól');
będzie mniej bezpiecznie niż
$pass = sha512($_POST['pass']);
questionmark.gif

edit2:
@down, w takim razie leci dla ciebie i dla viking "pomógł" za pomoc, thx.
Crozin
Używanie algorytmów z rodziny SHA-1/-2 (np. SHA-512) już samo w sobie zbyt bezpieczne nie jest (zbyt szybko można je generować). Powinieneś skorzystać ze wspomnianego wcześniej crypt bądź password_hash i bezpiecznego algorytmu, np. Blowfish.
ZaqU
Czy używanie crypt / password_hash & Blowfish nie jest najzwyczajniej w świecie mówiąc przerostem formy nad treścią? Samo hashowanie haseł ma przecież na celu ich ochronę tylko w przypadku dostania się do bazy intruza (czy to poprzez SQL Injection, czy konwencjonalnie - przez wejście do PMA). Czy zatem nie prościej byłoby po prostu zapisywać w formie zahashowanej hasło i sól prywatną dla każdego użytkownika? Nawet po zdobyciu jakimś cudownym trafem kopii danych z bazy przez potencjalnego intruza, jak długo trwałoby znalezienie metodą brute force właściwego hasła dla jednego użytkownika? To w sumie 16^128 kombinacji, bardzo, bardzo dużo. I oczywiście łamanie hasła odbywa się nie dla wszystkich użytkowników z bazy, ale dla pojedynczego.

To teraz pytanie: czy nie wystarczy po prostu wrzucić zwykłe sprawdzanie czy w ciągu ostatnich 15 minut nastąpiło co najmniej 5 prób nieudanego logowania i jeżeli tak, to odmawiać kolejnych logowań? Sam kiedyś stworzyłem taki system i korzystam z niego do dziś, bo jest w miarę bezpieczny. Owszem, nie użyłbym go do zabezpieczenia strony jakiegoś banku, ale na potrzeby zwykłych serwisów czy portali sprawdza się znakomicie. Czy jest zatem sens bawienia się w tego typu rzeczy? Jeżeli istnieje jakiś sensowny argument, to proszę go przytoczyć - nie chce się kłócić, i z wielką chęcią zmieniłbym nawyki, jeżeli obecne okazałyby się mało bezpieczne, ale musi istnieć konkretna przyczyna, a nie że podnosimy i tak już wysoko zawieszoną poprzeczkę. smile.gif
Crozin
@ZaqU: W kontekście bezpieczeństwa zawsze będę reprezentować wręcz paranoiczną postawę. wink.gif
1. password_hash z blowfishem wymaga takiej samej ilości pracy co sha512 z solą. W obu przypadkach... bardzo, bardzo mało. A w sumie powiedziałbym nawet, że jest to prostsze w obsłudze.
2. Co z tego, że jakiś hash daje 16^x kombinacji skoro i tak połowa użytkowników Twojego serwisu będzie miała hasła pokroju "qwerty", "internet123" czy "dupa.8"? Atakujący raczej na start rzuci jakiś atak słownikowy niż brute-force. I w przypadku takiego sha512 wygeneruje kilkaset czy kilka tysięcy kombinacji na sekundę, a przy blowfishu raczej kilka-kilkanaście.
3. Tutaj mówimy konkretnie o przypadku gdy intruz wpadł w posiadanie hasha naszego hasła, a nie o samym logowaniu, nie mniej jednak blokowanie możliwości zalogowania po x próbach jest słabym pomysłem - lepiej jest wymusisz jakąś CAPTCHA-e - sam niejednokrotnie zapominałem hasła do jakiś serwisów i potrzebowałem 10-20 prób na zalogowanie się. wink.gif
redeemer
Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
I w przypadku takiego sha512 wygeneruje kilkaset czy kilka tysięcy kombinacji na sekundę...

Dzisiaj z wykorzystaniem GPU to już nie tysiące, ale miliony.
Crozin
Cytat
Dzisiaj z wykorzystaniem GPU to już nie tysiące, ale miliony.
Aż sprawdziłem kilkuletni, podrzędnej klasy laptop z którego właśnie piszę... 150 milionów MD5 na sekundę - SHA512 pewnie byłoby w okolicach 100M.
redeemer
Cytat(Crozin @ 21.04.2014, 14:50:40 ) *
Aż sprawdziłem kilkuletni, podrzędnej klasy laptop z którego właśnie piszę... 150 milionów MD5 na sekundę - SHA512 pewnie byłoby w okolicach 100M.

Z tymi 100M przy SHA512 to nie byłbym taki optymistyczny wink.gif Wszystko oczywiście zależy od karty, ale nawet GTX580 (NVIDIA) ma w przypadku SHA512 ~114M/s (MD5 ~2414M/s). Dla porównania HD6990 (AMD) ma dla SHA512 ~217M/s (MD5 ~10742M/s)

Dane z http://hashcat.net/oclhashcat/
ZaqU
Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
2. Co z tego, że jakiś hash daje 16^x kombinacji skoro i tak połowa użytkowników Twojego serwisu będzie miała hasła pokroju "qwerty", "internet123" czy "dupa.8"?

Na szczęście, jako programiści za idiotów nie odpowiadamy - jak ktoś im się włamie na konto, bo ustawią sobie hasło 1234, to będzie to ich wina. A przecież chyba nie muszę nikomu przypominać, że 90-95% przypadków, gdy ktoś uzyskał dostęp do cudzego konta wynikało z winy użytkownika, a nie luki w systemie - a przed tym zabezpieczyć się nie da.

Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
3. Tutaj mówimy konkretnie o przypadku gdy intruz wpadł w posiadanie hasha naszego hasła, a nie o samym logowaniu, nie mniej jednak blokowanie możliwości zalogowania po x próbach jest słabym pomysłem - lepiej jest wymusisz jakąś CAPTCHA-e - sam niejednokrotnie zapominałem hasła do jakiś serwisów i potrzebowałem 10-20 prób na zalogowanie się. wink.gif

Jak kto lubi wink.gif Ja jestem przeciwnikiem używania CAPTCHY, bo to programista powinien właściwie zabezpieczyć swój system, a nie przerzucać obowiązki na użytkownika. Osobiście prędzej wyrzuciłbym monitor przez okno niż dał się namówić na przepisywanie 20 razy pod rząd zamazanego i ledwo widocznego tekstu z obrazka. Bo w sumie, jakby nie patrzeć... dobry system to taki, który ułatwia użytkownikowi życie, a nie je utrudnia. smile.gif
ZaXaZ
Jak już mowa o "capatch'y",
Google Street Viev potrafi odczytać numery domów czyt.
złamać/odczytać capatche lepiej niż człowiek.
czytałem o tym kilka dni temu (np. tu jest o tym, tyle że ja czytałem inny artykuł w którym było że hakerzy mogą to wykorzystać)
ale skoro już mowa to i pytanie bo właśnie miałem myśl...
"Hmm co by tu dodać na anty-spam..."
i pierwsze co mi przyszło na myśl to capatcha obrazkowa.
Jednak, jest coś lepszego? pomimo że ponoć capatcha także należy do google (mogę się mylić) to coś czuję że za parę lat to będzie równoznaczne z zabezpieczeniami jak "5 + 2 * 1, wpisz wynik w tym polu: "
a zabezpiecznie po IP to chyba już nie ta epoka ;| ale dodać zawsze można dla mniej sprytnych userów - tyle że można tym pokarać także niewinnych

Tak więc, są może jakieś propozycje co zamiast:
* capatch'y
* blokady po IP?
viking
Blokady IP możesz śmiało stosować w stosunku do znanych spamerów - gotowe uaktualniane listy znajdziesz w sieci. Dzięki temu jesteś w stanie wykluczyć chociaż sporą liczbę botów próbujących automatycznej rejestracji / logowania.
Crozin
Cytat
Na szczęście, jako programiści za idiotów nie odpowiadamy - jak ktoś im się włamie na konto, bo ustawią sobie hasło 1234, to będzie to ich wina.
Co z tego, że to idioci. Jeśli mogę właściwie zerowym kosztem ochronić takie osoby przed przejęciem ich konta powinienem to zrobić.
Cytat
[...]Osobiście prędzej wyrzuciłbym monitor przez okno niż dał się namówić na przepisywanie 20 razy pod rząd zamazanego i ledwo widocznego tekstu z obrazka.[...]
Ja tam jednak wolę przepisać ten durny obrazek po 10 nieudanym zalogowaniu niż otrzymać informację, że przez następne 15 minut w ogóle nie będę miał możliwości próby zalogowania. wink.gif Ale... jak kto lubi. wink.gif

Cytat
[...] pomimo że ponoć capatcha także należy do google (mogę się mylić) to coś czuję że za parę lat to będzie równoznaczne z zabezpieczeniami jak "5 + 2 * 1
CAPTCHA to tylko pojęcie i nie należy do nikogo. reCAPTCHA to już konkretny produkt Google'a.
ZaXaZ
Dodatkowe pytanie (layout), jest to mój pierwszy pisany od zera, wygląda gorzej niż osób które wydawały w 2007 ale nie jest to dział do ocen ani nic więc proszę tego nie krytykować bo od czegoś muszę zacząć oraz też poprawności html bo jest tylko do testowania,

a pytanie: jak mogę zrobić żeby diva content nie psuł długi tekst?

  1. body
  2. {
  3. color:#04030A;
  4. font:13px Arial, Helvetica, sans-serif;
  5. background:#EBEBEB no-repeat center;
  6. background-size:1000px 1800px;
  7. position:absolute;
  8. margin:0;
  9. overflow:auto;
  10. }
  11. #menu, #menu2
  12. {
  13. border:1px solid #191919;
  14. width:100px;
  15. height:200px;
  16. float:left;
  17. background-color:#8D8D8D;
  18. }
  19. #menu
  20. {
  21. border-left:thick solid #191919;
  22. border-right:solid #191919;
  23. float:left;
  24. }
  25. #menu2
  26. {
  27. border-right:thick solid #191919;
  28. border-left:solid #191919;
  29. float:right;}
  30. footer, header
  31. {
  32. color:#BBB;
  33. text-decoration:none;
  34. font-size:10px;
  35. border:1px solid #191919;
  36. text-align:center;
  37. clear:both;
  38. background-color:#0013BF;
  39. }
  40. header
  41. {
  42. border-top-left-radius:0.3cm;
  43. border-top-right-radius:0.3cm;
  44. }
  45. footer
  46. {
  47. border-bottom-right-radius:0.3cm;
  48. border-bottom-left-radius:0.3cm;
  49. }
  50. footer a {color:#D9CE00;}
  51. #content
  52. {
  53. float:left;
  54. }
  55. <header>Witaj na stronie!</header>
  56.  
  57. <div id="menu"><b>Menu</b>:<br/>
  58. <a href="#">Link</a><br/>
  59. <a href="#">Link 2</a><br/>
  60. <a href="#">Link 3</a>
  61. </div>
  62.  
  63. <div id="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
  64. <div id="menu2"><b>Menu2</b>:<br/>
  65. <a href="#">Link</a><br/>
  66. <a href="#">Link 2</a><br/>
  67. <a href="#">Link 3</a> </div>
  68.  
  69. <footer>&copy;ZaXaZ 2013-2014</footer>
  70. </body>


taki sam efekt z długim tekstem uzyskiwałem przy krótkim gdy content był zwykłym divem bez float left.
Ps. jestem początkujący w html/css - uczyłem się rok temu ale nadal słabo mi idzie.
Ps. 2. chcę się tu ograniczyć do samego html i css (żadnego js.)
Turson
Co znaczy, że długi tekst psuje #content?
ZaXaZ
Cytat(Turson @ 25.04.2014, 09:38:16 ) *
Co znaczy, że długi tekst psuje #content?


Menu lewe i header zostaje u góry, content jest na środku pod menu a menu2 i footer idzie na dół pod content,
##########
###
#*#
#~#
###
Lorem Ipsum (długi...)
__________###
__________#*#
__________#~#
__________###
##########

a gdy jest krótki tekst działa normalnie.
header nad wszystkim, menu u góry, menu2 na przeciwko menu, content pomiędzy menu a menu2 i stopka równo pod menu i menu2

##########
###...____###
#*#______#*#
#~#______#~#
###______###
##########

edit: dodalem jak to mniej więcej wygląda.
# header, footer, menu i menu2 (obramowanie)
* treść menu
_ to spacje
~ pusta treść.
Turson
Najlepiej pokaż jakieś demko.
Dla #content nadaj overflow:hidden
Poza tym mieszasz floaty dla #menu i #menu2. Najpier dajesz left, potem każdego z osobna inny.
ZaXaZ
Cytat(Turson @ 25.04.2014, 12:32:58 ) *
Najlepiej pokaż jakieś demko.
Dla #content nadaj overflow:hidden
Poza tym mieszasz floaty dla #menu i #menu2. Najpier dajesz left, potem każdego z osobna inny.


demko dałem, pisałem trochę wcześniej ale szybciej o parę minut wyslales ;p ,
overflow:hidden; dodalem i bez zmian :/
float left (menu) float right (menu2) było to zamienialem float right na left w menu2
i tak wygląda na szybko:
##########
###
###
.................
###
###
##########

i najważniejsze:
dodałem
width:400px;
height:200px;
dla content i działa idalnie, ale czy to nie zawodne? ;p bo nie wiem czy u innych też tak działa

edit2: dodalem 2x dłuższy Lorem ipsum (w sumie już ma 4x Lorem...) i ucina tekst (znika) pod stopka
Turson
Jeżeli dałeś height:200px to co dziwnego w tym, że ucina? Daj min-height:200px
ZaXaZ
Cytat(Turson @ 25.04.2014, 13:00:42 ) *
Jeżeli dałeś height:200px to co dziwnego w tym, że ucina? Daj min-height:200px


Działa, a da się jeszcze zrobić żeby menu lewe i prawe się rozciągało z góry na dół do footer? bo po dłuższym tekście idzie w dół footer.. a reszta ok
ZaXaZ
Przeglądam plik css jednej gry,
jest tam coś na podobe tego:
  1. .aaa .bbb
  2. {
  3. ...
  4. }

i jest dokładnie tak jak napisałem,
- jak to się nazywa?
- jak mogę takie coś użyć?

edit: przy okazji. Niektóre strony np. fb mają html zakodowany w base64, dla przykładu, jak się na operze wejdzie w stronę i nią zapisze, + wejdzie się w kod to jest on w base64, a w przeglądarce pokazuje normalnie, jak można takie coś zrobić? tongue.gif, przyda się pewnie, ps. wiem co to base64_encode ale nie mam pomysłu jak to użyć, o ile to tym zakodowuje.
Turson
  1. .aaa .bbb
  2. {
  3. ...
  4. }

To jest składnia dla np.
  1. <div class="aaa"><div class="bbb"></div></div>

Czyli klasa bbb jest w klasie aaa
Tym sposobem możesz róznie ostylować .bbb powyższego przykładu i dla
  1. .bbb{}

  1. <div class="bbb"></div>


O base64 przeczytasz dużo w wyszukiwarce
ZaXaZ
Cytat(Turson @ 26.04.2014, 19:27:46 ) *
  1. .aaa .bbb
  2. {
  3. ...
  4. }

To jest składnia dla np.
  1. <div class="aaa"><div class="bbb"></div></div>

czyli że
  1. .aaa .bbb{...}

jest równo ważne z
  1. .aaa, .bbb{...}

questionmark.gif
trueblue
Nie jest.
  1. .aaa .bbb

oznacza, że jest to selektor dla elementów o klasie bbb, które mają przodka z klasą aaa.
  1. .aaa, .bbb

to selektor dla elementów o klasie aaa i/lub klasie bbb
Jeszcze możesz się spotkać z:
  1. .aaa.bbb

Co oznacza, że jest to selektor dla elementów, które mają przypisane obydwie klasy.
ZaXaZ
~ PHP ~
1. nie mogę nigdzie znaleść: co robi &$zmienna? a robi pewnie coś (przykład: $a = &$b; ) //trochę off-top z tym ale chyba niema po co zakładać tematu którego nawet nazwy bym nie znał (dodatkowo pewnie już gdzieś jest na forum ale nie wiem jak to szukać) znajduję tylko same rzeczy typu if ($x && $y)....... a o to mi nie chodzi.
2. Jak mogę zliczyć różnice czasu i dat? - artykułów jest pełno ale całkowicie nie na temat, jest tylko dodawanie dat itd, a chce zrobić coś takiego:
Zliczenie ile czasu mięło od podanej daty do aktualnej; a konkretniej od daty wygenerowanej przez SQL NOW() do drugiej daty NOW(), chodzi mi żeby liczyło różnice sekund, minut, godzin dni, miesięcy, lat; //tego też nigdzie nie mogę znaleść. (Zliczenie ile łącznie użytkownik był online)
Turson
1. http://www.php.net/manual/en/language.references.pass.php
2. Ostatnio w dziale PHP był temat o obliczaniu czasu
ZaXaZ
PHP - Ciastka
a co myślicie o tym żeby dodatkowo blokować użytkowników w ciastkach na dzień? lub tydzień jeśli spamerzy? zadziała na strony jeśli są spamerskie?
ps. wiem że ciastka można blokować oraz kasować, ale istnieje nie jeden mniej sprytny użytkownik a ja nie pogardze żadnym zabezpieczeniem które coś wniesie.

Ciastka vs Sesje
planuję w sesjach przechowywac id użytkownika a w ciastkach nick, czy dobrze tak będzie?!, bo forum.php.pl jak widzę ma w ciastkach zalogowanie; jak się nie mylę... bo po kasacji ciastek przeglądarki mnie wylogowalo a gdzieś czytałem że sesje korzystają i tak z ciastek.
Turson
1. Nie zaszkodzi blokować po ciastkach, ale to zabezpieczenie nie może być jedynym.
2. Ciatka można także zmieniać. Trzymaj w sesji.
trueblue
Cytat(ZaXaZ @ 30.04.2014, 15:03:22 ) *
gdzieś czytałem że sesje korzystają i tak z ciastek.

W ciastku jest przechowywany identyfikator sesji, tak aby serwer wiedział, którą sesję (którego użytkownika sesję) ma odtworzyć przy nawigacji po stronie.
Kiedy usuniesz to ciastko, to nadal plik sesji istnieje na serwerze, ale nie ma możliwości jej odtworzenia/powiązania.
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.