Portál AbcLinuxu, 26. dubna 2024 07:36


Dotaz: PHP a setcookie, problem

2.4.2009 17:33 Jarko
PHP a setcookie, problem
Přečteno: 948×
Odpovědět | Admin
Ahoj,

v index.php mam

setcookie("visited", $_COOKIE['visited']+1, time()+12*365*24*60*60);

a kdyz dam vypsat $_COOKIE['visited'];

tak se mi pricita vzdy jednicka k danemu cislu, ale problem je v tom, ze na kazde strance je cislo jine, coz nejak nechapu, kdyz to ma spolecny index.php a neni to nijak rozdeleny. Kdyz pak mrknu jeste do spravce cookie tak se tam uklada url a k tomu nejaka hodnota ke ktere se pak pricita +1. Muzete mi to nekdo vysvetlit? hlavne jak se toho zbavit aby bylo cislo jednotne pro vsechny stranky..

predem dekuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Konqui avatar 2.4.2009 18:28 Konqui | skóre: 18 | blog: Konqui | Rožnov pod Radhoštěm
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jsem to správně pochopil tak v při každém reloadu přičítáš te cookie hodnotu což je normální že se bude pořád zvyšovat.Při každém načtení index.php přičteš k té současné +1 takže při pěti reloadech bude o 5 vyšší
Open/save dialogy z GTK+ jsou nejkřiklavější ukázkou toho nejdebilnějšího software, co vůbec může existovat.
3.4.2009 07:10 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
V setcookie muzes nastavit i cestu, pro kterou bude cookie platit. Zkus nastavit /, at je jedna cookie pro cely web (coz asi prave chces).
Toman avatar 3.4.2009 12:44 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud to má být globální cookies pro celý tvůj web, je třeba volat cookies takto:
setcookie("visited", $_COOKIE['visited']+1, time()+12*365*24*60*60, "/");
Have you tried turning it off and on again? | tomaskavalek.cz | Google
3.4.2009 22:14 Jarko
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Super, to lomitko (nastaveni path) vyresilo muj problem, diky moc, jeste mam jednu doplnujici otazku, potrebuji nejak zabezpecit ty ukladana cisla, cili kdyz se pricita +1 k nejakemu cislu, aby to neslo zmenit ve spravci cookie, nenapada nekoho neco jednoducheho?

dekuji
4.4.2009 06:02 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Muzes to ochranit proti zmene pouzitim hashe (kontrolniho souctu) se saltem. Napr. SHA1 nebo MD5. Funguje to tak, ze si urcis nejaky salt - nejaky retezec, radeji delsi, ne snadno uhadnutelny; pri ukladani do cookie ulozis jak data (ten pocet navstev), tak hash, vytvoreny napr. nejak takhle: sha1($salt . $data). Pri ziskani tech dat a hashe zkontrolujes, jestli to sedi - jestli je ten hash spravny. Je to zalozeno na tom, ze pokud ty data nekdo bude chtit zmenit, bude muset zmenit i ten hash a to nedokaze, protoze nebude vedet ten salt.

P. S. Nevim, jestli se tomu opravdu rika salt :) Jinak existuji urcite i jine postupy, treba zasifrovat to (ten pocet navstev).
AraxoN avatar 4.4.2009 09:18 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP a setcookie, problem

Myslím, že "salt" sa volá niečo iné, ale až na tú terminológiu by to takto mohlo fungovať. :-) Problém vidím v tom, že rovnaké čísla budú mať rovnaký hash, takže ak klient bude vedieť, že jednotka je "5D679FE1", tak mu nič nebráni naeditovať obidva tieto položky a dostane jednotku.

5.4.2009 13:28 luky
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Je otázka jestli to něčemu vadí.
Tarmaq avatar 6.4.2009 16:00 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
a jak z toho hashe zjisti ten tajny kod, kdyz ten hash neni zpetne desifrovatelny? podle me je vyse uvedene reseni v poradku, ikdyz lepsi bude sha256..
Don't panic!
6.4.2009 17:03 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Příklad:

Alfred bude mít na Jarkově webu 1000 visitů a díky tomu např. vyhraje cenu. Bořek bude mít jen 5 visitů, ale dozví se, že Alfred jich má 1000 a že kvůli tomu vyhrál. Tak se Alfreda zeptá na obsah jeho cookie, nastaví to samé do své cookie a najednou mu naskočí taky 1000 visitů.

Hash nebyl zpětně dešifrován, přesto došlo k nějaké formě prolomení.

Všimněte si, že tento problém má většina dnes používaných mechanismů pro přihlášení. Když se někoho zeptám, jaký je obsah jeho cookie na bankovním webu a nastavím si to do svého prohlížeče, budu mít také přístup k jeho účtu. Rozdíl je v tom, že svoje hesla a podobné údaje mi nikdo rozumný neřekne, ale nějakou cookie s počtem návštěv mi řekne kdekdo.

Řešením by mohlo být např. svázat počet návštěv s nějakou identitou uživatele a jako část toho mého "saltu" použít id uživatele, nebo rovnou si to číslo neukládat do cookie, ale do databáze k tomu uživateli.

Už si ale začínám myslet, že tu zabíháme dost daleko od původního dotazu, který je už dávno vyřešen.

P.S. A je sha256 v PHP? :-)
7.4.2009 00:22 Jarko
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Nezachazime daleko a vyreseny taky jeste neni.. problem je z mysql, neni to mozne, musi se to vyresit pouze pres cookie. A s tim visted, samozrejme ze to nikdo nikomu nerekne ale muze mu to prodat a zacit tak videlavat na podvodu. A to nechci..

dekuji
7.4.2009 07:01 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Co je to za web? Nedelas nahodou nejaky "klikaci" web typu "klikejte na nasem webu a ostatni prostrednictvim naseho webu budou klikat na reklamy na vasem webu" nebo neco podobneho, ze ne?

Proc je MySQL problem? Na ceskem webu je dost problem mit takovy provoz, ze by to mysql sama o sobe nestihala...
8.4.2009 15:08 Jarko
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
>> Co je to za web? Nedelas nahodou nejaky "klikaci" web typu "klikejte na nasem webu a ostatni prostrednictvim naseho webu budou klikat na reklamy na

>> vasem webu" nebo neco podobneho, ze ne?

ne, ne, je to pouze pro osobni vyuziti stranek

>> Proc je MySQL problem? Na ceskem webu je dost problem mit takovy provoz, ze by to mysql sama o sobe nestihala...

>> Váš komentář

no presne proto ze by to mysql nestihala :( nevedelaby co prvni zpracovavat a nacitat
AraxoN avatar 8.4.2009 17:25 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
no presne proto ze by to mysql nestihala :( nevedelaby co prvni zpracovavat a nacitat

Tieto starosti by som pustil z hlavy a normálne si to do databázy ukladal. Niektoré naše servery podľa štatistík majú chvíle, keď riešia 700-800 SQL dotazov za sekundu, a nevyzerajú že by to nestíhali.

8.4.2009 18:38 Jarko
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
No kdybych mel dotazu 700-800 SQL /sec tak bych to neresil a piskal bych si, ze se mysql flaka :-(
7.4.2009 11:35 Michall
Rozbalit Rozbalit vše Re: PHP a setcookie, problem

Myslím, že pomocí cookies toto můžeme vyřešet pouze "dostatečně ". 100% neprolomitelné to bohužel nikdy nebude a vždy bude možno manipulovat s coookies. Jediná šance jak na 100% rozpoznat, zda se jedná o stejného návštěvníka je nějaký proces přihlášení (login+pass).

22.4.2009 13:45 klingac | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: PHP a setcookie, problem

najjednoduchsie co ma napada je pouzit sessions :)) hodnotu si budes drzat v session, vsetko osatne zariadi system. vobec.. divim sa preco si nepouzil sessions uz skor namiesto cookies (teda ak som spravne pochopil zamer autora tak sa na to obzvlast hodia)

4.4.2009 22:08 Jarko
Rozbalit Rozbalit vše Re: PHP a setcookie, problem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak ze jsme porad na zacatku :-(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.