Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako obezbediti interakciju bez cookies?

[es] :: PHP :: Kako obezbediti interakciju bez cookies?

[ Pregleda: 10648 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
*.adsl-3.sezampro.rs.



+11 Profil

icon Kako obezbediti interakciju bez cookies?28.03.2017. u 19:29 - pre 85 meseci
Uradio sam nekoliko projekata, sajtova, blog, forum, statika i slično, ali svuda sam koristio kolačiće.

Ali i pored mog iskustva nisam zapazio da sesije ne mogu da prenose vrednost izmedju stranica ako su kolačići ofovani. Ustvari ja uglavnom koristim samo index.php i tu inkludujem sve sto treba, ali napravio sam posebnu enter stranicu, koja nekako mora biti poseban fajl enter.php. I onda proveravam ako korisnik nema kolačić "first_visit", znači da prvi put pristupa sajtu i onda ga redirektuje na enter.php

Tako, kako to da rešim?
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Kako obezbediti interakciju bez cookies?28.03.2017. u 23:32 - pre 85 meseci
ini_set("session.use_cookies", 0);
ini_set("session.use_only_cookies", 0);
ini_set("session.use_trans_sid", 1);
ini_set("session.cache_limiter", "");
session_start();


ID sesije nece biti u kolačiću nego u URL-u. Nije preporucljivo, ima dosta mana ali ako si baš zapeo...
 
Odgovor na temu

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
*.adsl-3.sezampro.rs.



+11 Profil

icon Re: Kako obezbediti interakciju bez cookies?29.03.2017. u 10:29 - pre 85 meseci
E hvala ti predraze.

Dobro je da znam. A dal cu da koristim, videcu. Mislim da sam blizi opciji, da upozorim korisnike da koristimo kolačiće, te s tim u vezi da ih aktiviraju.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 00:08 - pre 85 meseci
A zašto bi izbegavao browser kolačiće? Zar ti nije logičnije da one kolačiće koji su, onako, bitni i sadrže informacije bez kojih nema pristupa tu i tu, lepo setuješ sa `httponly` i `secured` (ako radi i ssl) .. ?
about:networking
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 07:35 - pre 85 meseci
Ni ne treba razmisljati o slucaju "sta ako je cookies blokiran". Taj ko blokira cookie svakako nema pristup na mnoge sajtove i svestan je toga.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
*.adsl-a-7.sezampro.rs.



+11 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 16:19 - pre 85 meseci
@plus_minus,

Nisam te razumeo drugar, kako to da podesim? Jel to ovo sto je Predrag napisao. Moracu to da isproveravam.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 16:58 - pre 85 meseci
Ne, predrag ti je napisao kako da odradiš nešto drugo, vezano striktno samo za - sesije.

Sesije žive na serveru. I jedino zajedničko što imaju sa `browser cookies` jeste to što kada startuješ PHP sesiju, browser dobije session_cookie koji govori kako se zove sesija, koji je ID sesije i koji su parametri.
NE i ono što se nalazi u session fajlovima na serveru. Dakle, čisto da "browser zna" (da tako kažemo) da su i sesije u igri.

Zaključak ? Kolačići (browser cookies) rade bez obzira na sesije.

Ako želiš da javaskriptom uopšte ne možeš da menjaš kolačiće,
ovo nije potrebno, ali neće da škodi da se odradi.

Pre nego što dođe deo gde se postavljaju kolačići, negde u svom kodu:

Code (php):

     ini_set('session.cookie_secure', true);
     ini_set('session.cookie_httponly', true);
 


Prvo ti je za ssl, to jest https.
Upišeš to gore negde.. u svom opcode-u.
Pa onda startuješ sesije, ako ih koristiš.

Code (php):

if(session_status() !== PHP_SESSION_ACTIVE)
{
    session_name('NekoImeZaSesiju');
    session_id('NekiDObarIDzaSesiju');
    session_set_cookie_params(0, '/', 'mojsajt.com', HTTPS, HTTP_ONLY);
    session_start();
}
 


Prvi parametar je lifetime, drugi je lokacija, treći je domen, četvri i peti su 1/0 ili true/false (ne postoji HTTPS i HTTP_ONLY).
Naravno ne moraš session_name i session_id da stavljaš ali što da ne? session_name je da promeniš ono 'PHPSESSID' u browseru za sesije.

E, a kada napucavaš kolačiće u browser, jednostavno upiši sve parametre. Toliko prosto.

Code (php):


        setcookie('Name', "value", 0, "/", $_SERVER['SERVER_NAME'], true, true);
 


Zadnja dva su ona bitna. Ovo gore će da postavi kolačić koji će da radi samo ako je ssl uključen
i neće biti dostupan javaskripti. Uopšte, neće klijent moći da ga modifikuje.

I logično, kada hoćeš da obrišeš ovakav kolačić, moraš da upotrebiš sve parametre, ako izostaviš bilo koji, neće biti uklonjen.
Za više detalja, ovde sve imaš izbiflano -> setcookie <- pa se igraj u lokalu i testiraj.


[Ovu poruku je menjao plus_minus dana 30.03.2017. u 18:24 GMT+1]
about:networking
 
Odgovor na temu

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
*.adsl-a-7.sezampro.rs.



+11 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 17:38 - pre 85 meseci
Dobro plus_minus, i kad se to odradi, onda ce da rade sesije i kad je zabranjeno snimanje kolacica? Jel to to?

p.s. stvarno si sila coek :)
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Kako obezbediti interakciju bez cookies?30.03.2017. u 19:45 - pre 85 meseci
Citat:
plus_minus:
Sesije žive na serveru. I jedino zajedničko što imaju sa `browser cookies` jeste to što kada startuješ PHP sesiju, browser dobije session_cookie koji govori kako se zove sesija, koji je ID sesije i koji su parametri.
NE i ono što se nalazi u session fajlovima na serveru. Dakle, čisto da "browser zna" (da tako kažemo) da su i sesije u igri.

Zaključak ? Kolačići (browser cookies) rade bez obzira na sesije.
[Ovu poruku je menjao plus_minus dana 30.03.2017. u 18:24 GMT+1]

OK, nije ovako.

Sesije stoje na serveru, negde (fajlovi, key-value store, sta god). Session cookie stoji u browseru i sluzi da bi SERVER znao koja sesija je vezana za koji http request. Naime, kad klijent (browser) posalje bilo koji http request, on posalje i sve headere i cookies. Na osnovu session cookie-a server pronalazi session ID i dalje ima pristup podacima unutar sesije.

Ako session ID prosledjujes kroz request, kao parametar, desava se potpuno ista stvar, samo se ne cita cookie vec ID iz requesta.

Ideja svega ovoga je da je web server sam po sebi stateless, state mu daje sesija koja moze (i treba) da bude decoupled od servera, i ciji ID se prosledjuje u svakom request-u.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 01:08 - pre 85 meseci
^^

Mislim da ti mene nisi razumeo..

Ono što sam ja napisao u prethodnom postu znači da slobodno možeš u potpunosti da onesposobiš sesije u PHP-u i da ih nikada ne koristiš, niti da ih bilo kada startuješ.

Da zamislimo da se sesije na određenom setup-u tretiraju kao što se trenutno tretira `magic quotes` ..

Znači, sesije, *( $_SESSION, jel' te) === nada, null, njente, disabled totalle .. a kolačići *( setcookie() ) .. to će i dalje da radi ... To je bila poenta.

I to važi za PHP.

Kako god okreneš, mislim da smo mikigenu malo razjasnili šta je session_cookie a šta client ili browser_cookie.


about:networking
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 02:07 - pre 85 meseci
Citat:
mikigen:
Dobro plus_minus, i kad se to odradi, onda ce da rade sesije i kad je zabranjeno snimanje kolacica? Jel to to?


Ne zabrana snimanja, nego zabrana postavljanja od strane klijenta.
Jer, ako javaskriptom možeš da napucaš kuki, to onda znači da može SVAKO, pa i da manipuliše postojećim, onako kako ti ne bi hteo,
ako recimo posetiš tu i tu lokaciju, preko svoje aplikacije, itd. ako taj neko zna kako. I to nije dobro, jel' da?

Korišćenje kolačića ( browser_cookie HTTP_cookie, funkcija setcookie() dakle .. ) to jednostavno nikada ne treba isključivati kao mogućnost onda kada se nađe kao zgodna opcija.
Ako želiš da postavljaš kolačiće koji nisu u `security` loncu, dakle kolačić koji ne sadrži vrednost ili deo vrednosti na osnovu koje se korisnik, recimo loguje na nalog,
ovo ti je dovoljno.

Code (php):


    setcookie('Orientation', 'Left', 7200);
    $_COOKIE['Orientation']='Left';

 


.. i sa tim će kukijem "javaskripta da se igra" ako treba, jer samo takve kolačiće javaskripta i može da postavi - ukoliko serveru nije rečeno da samo php može da napucava nove i isto tako da ih uklanja.

Druga linija, ručno upucavanje u $_COOKIE superglobalnu jeste tu da bi u daljem radu PHP imao instant vrednost tek postavljenog kolačića.
U protivnom, tek na sledeći page reload se dobija $_COOKIE['Orientation'] sa svojom vrednošću.

A ako postaviš cookie kao u primeru iz `gornjeg`, prethodnog posta, javaskriptom ćeš moći samo da eventualno vidiš vrednost i toliko.

Što se sesija tiče, njih treba koristiti 'normalno', kao jedan od mehanizama za prenošenje glomaznih podataka, serijalizovanih nizova, itd. između zahteva - u pozadini,
tako da korisnik pojma nema šta se u backendu dešava.

Najgora opcija za sesije jeste baš onako kako ti je Predrag opisao, ako se radi o - sajtu koji je online za široke narodne mase ... taj takav sajt sa takvim setup-om onda postaje test poligon za hakere početnike.

Ukoliko se radi lokalna aplikacija, koja ne ide na net, to onda nije nikakav security threat i ne mora da se razmišlja o session hijacking-u.


about:networking
 
Odgovor na temu

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
109.121.63.*



+11 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 09:07 - pre 85 meseci
au bre koja filozofija.
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 09:57 - pre 85 meseci
Citat:
plus_minus:
^^

Mislim da ti mene nisi razumeo..


Ja sam tebe razumeo, samo sam hteo da pojasnim da browser zapravo nema pojma sta je session. :) Ti si to malo plasticno pojasnio, a ja sam hteo da budem malo precizniji, cisto da izbegnemo nedoumice.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 12:07 - pre 85 meseci
^^

Jok more. :) Browser sazna šta je session, čim se startuje sesija i stranica otvori u pretraživaču.
Ali `sazna` samo površne informacije kroz response. Ime, ID, path, httponly/secured yes or no.
Dalje ne može, ukoliko se informacije o sesijama, ne guraju kroz url, baš onako kako ne treba.
about:networking
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 13:19 - pre 85 meseci
Upravo to probam da objasnim: Browser zna sta je cookie. Sesija je server side.

Nema nikakvog nacina da browser sazna da li sesija na serveru postoji niti sta je u njoj. Nema nacina ni da sazna koji cookie je ID sesije. Jednostavno, browser ima svoju sesiju, tj. sadrzaj cookie-a koje posalje serveru uz svaki request (pricam HTTP/1.1, da ne ulazimo u HTTP/2). Server sesiju drzi van domasaja browsera. To o cemu ti pricas je informacija o cookie-ima i sta je u njima - ali, kazem, browser cak ne zna ni da li neki cookie ima veze sa sesijom ili nema.

Ja sam imao dva razlicita cookie-a i oba su bili neka vrsta session-a. Jedan uvali nginx reverzni proxy da po njemu identifikuje request i napravi sticky session ka tacno jednom app serveru, drugi koji je web server uvaljivao kao svoj interni session ID. Nijedan se nije zvao PHPSESSION, nijedan nije imao trajanje "session". Pored njega je imalo jos tri non-session related cookie-a.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 13:44 - pre 85 meseci
Tako je, browser zna šta je cookie i sesija jeste server side, ali I SESIJA TAKOĐE UPUCA kuki u browser - svaki put, ako se koristi podrazumevani setup, a uglavnom se koristi podrazumevani setup.





Nešto mi govori da ti tek nešto radiš sa PHP-om, uopšte sa pravljenjem sajtova, itd.
Zapravo radiš druge stvari u drugim programskim jezicima. Jesam li u pravu .. ?

U svakom slučaju, ja završavam diskusiju ovde.


about:networking
Prikačeni fajlovi
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 13:45 - pre 85 meseci
Ama bre ljudi vi ste 300% skrenuli sa teme. Covek hoce da resi problem kada su cookie u browseru disablovani. Kakve to veze ima za https ili sa iskljucivanjem sesije? Procitajte jos jednom pitanje ove teme.

Da krenemo redom
Citat:
Ali i pored mog iskustva nisam zapazio da sesije ne mogu da prenose vrednost izmedju stranica ako su kolačići ofovani.

Sesije ne prenose vrednost nikada jer se cuvaju na serveru a njihov id se cuva u cookie ili url i id sesije se prenosi.

Covek ima problem kako da omoguci dolazak na enter.php stranicu iskljucivo sa index.php stranice.
To moze sa cookie preko kojeg nece da resava za slucaj da je iskljuceno.
Moze preko http referer.
Moze da prenosi neki uniq param preko url-a koji mu se dodeljuje je na index.php stranici a da uniq pamti u bazi i koji ima neki ttl sto je vrlo slicno da pamti session id preko url. Ili ovaj slucaj da resi preko nekog redirect url.

Nije bitno gde i kako sesije rade. Ako nece preko cookie zasto bi preko ssl cookie? I najverovatno njegov domen nema ssl.



[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 13:46 - pre 85 meseci
I sesija ne mora da radi preko cookie vec moze preko url.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

mikigen
Direktor za Pecanje Riba
pored reke com

Član broj: 336524
Poruke: 37
109.121.63.*



+11 Profil

icon Re: Kako obezbediti interakciju bez cookies?31.03.2017. u 13:49 - pre 85 meseci
Cela nauka. Citacu detaljno, pa da se razilazimo .
 
Odgovor na temu

[es] :: PHP :: Kako obezbediti interakciju bez cookies?

[ Pregleda: 10648 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.