» »

Shranjevanje v sejo

Shranjevanje v sejo

marjan_h ::

Imam več strani napisanih v php.

Zanima me ali moram pri vsaki strani klicati funkcijo session_start?

<?php session_start(); ?>

<html>
<body>
$_SESSION['uporabnik'] = uporabnik;
</body>
</html> 


Obrazec za prijavo imam na vsaki strani. Kako deluje glede seje? Če shranim uporabnika na strani v sejo, ali bo ostal shranjen tudi na drugi strani?

Bom še vedno lahko do njega dostopal z $_SESSION['uporabnik']?


Hvala za odgovore.

technolog ::

Ja, to moraš klicati na vseh straneh, kjer uporabljaš (bodisi bereš, bodisi pišeš) spremenljivko $_SESSION.

To kar sprašuješ je ravno namen sej. Se pravi to, da lahko ohraniš informacije med različnimi strani oz. zahtevki.

marjan_h ::

Seveda je to namen sej. Vendar kam se to shrani? Nekam na strežnik, samo kako ve strežnik od katerega je seja. Čudno mi je ker kar kličeš nekje $_SESSION['uporabnik'] in lahko dostopaš do tega kjerkoli.

blackbfm ::

seja se shrani v cookie

ampak taka aplikacija je ranljiva na ponarejanje seje.. torej imaš opcije da jo enkriptaš ali pa preverjaš preko podatkovne baze če je trenutna seja veljavna..najbolje je pa kombinacija obojega

technolog ::

Seja se v PHP hrani na strežniku, zato lahko zaupaš, da tistega, kar si enkrat v preteklosti shranil notri, ne more uporabnik spreminjat.

V sejo lahko shranjuješ tudi po par mega velike stvari, medtem ko je omejitev na piškotek par kilobajtov, tako da, blackbfm, nimaš prav.

Mavrik ::

technolog je izjavil:

Seja se v PHP hrani na strežniku, zato lahko zaupaš, da tistega, kar si enkrat v preteklosti shranil notri, ne more uporabnik spreminjat.

V sejo lahko shranjuješ tudi po par mega velike stvari, medtem ko je omejitev na piškotek par kilobajtov, tako da, blackbfm, nimaš prav.


ID seje se shrani jasno v piškotek (privzeto PHPSESSID), podatki pa ostanejo na strežniku, tako da ima blackbfm popolnoma prav. Alternativno se ID lahko prenaša po URLjih (kar je s stališča varnosti še slabše), kar je potrebno posebej skonfigurirati (dokumentacija) Ponarejanje sej je resen bil resen problem za precej strani in zgodilo se je že precej kraj uporabniških podatkov zaradi ignorance razvijalcev. Dajte si prosim te stvari pogledat.

DirectX11: kot ti jasno piše v dokumentaciji, start_session() moraš klicat vedno pred uporabo vsebine seje.
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

technolog ::

Ne, blackfbm je govoril o načinu dela s sejami, tako kot jih pozna Rails, torej prav konkretno podatki v piškotku, le da so kriptirani. PHP tega nima. Vsaj upam, da je govoril o tem, ker je to, kar je napisal, popolnoma brez smisla. Razen pointa, da je treba bit previden.

V obeh primerih si pečen, če nekdo uporabniku ukrade/prebere piškot. Ali dobi konkretno sejne podatke ali pa njihov ID, isto je.

Kaj misliš kot ponarejanje seje? Session Fixation, Session Hijacking? Google ne najde niti enega zadetka, tako da je to izraz, ki sta ga vidva naumila.

Zgodovina sprememb…

marjan_h ::

Ok, hvala. Sedaj vem več.

faca5 ::

Živjo.

Da. Če želiš, da session velja čez celo stran je potrebno v glavo php datoteke omenjeno vrstico vpisat. Predlagam, da narediš datoteko npr. spremeljivke.php v katero vneses session_start(); in nato to datoteko include_once('spremeljivke.php'); vse ostale datoteke. Če ti ne bo več do uporabe session preprosto izklopiš v eni datoteki. Če rabiš še kakšno spremeljivko ki velja za celo datoteko preprosto vneseš v omenjeno datoteko.
Ugodno spletno gostovanje in registracija domen
www.super-server.eu


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

cookie nova zakonodaja

Oddelek: Izdelava spletišč
419819 (7819) stb
»

ZEKom-1 po dveh tednih (strani: 1 2 )

Oddelek: Novice / Zasebnost
9320775 (15712) jype
»

[PHP] Prijava uporabnika(forum)

Oddelek: Programiranje
111571 (1340) rokpok
»

sessions

Oddelek: Izdelava spletišč
151481 (1343) multiplayer
»

Tracking v PHPju

Oddelek: Programiranje
61708 (1593) darh

Več podobnih tem