SessionHandlerInterface intrebari

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

danutz0501
Average Member
Mesaje: 104
Membru din: Vin Sep 10, 2010 7:43 pm

SessionHandlerInterface intrebari

Mesajde danutz0501 » Joi Apr 26, 2018 4:24 pm

Salut, dupa cum spune si titlul vreau sa implementez interfata "SessionHandlerInterface".
Intrebare pentru securitate. In codul de mai jos

Cod: Selectaţi tot

   public function read($session_id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$session_id");
    }

$session_id vine de la utilizator din session cookie, ce masuri de securitate pot aplica pt "curatarea" lui?
Ma gandesc deja la directory traversal(elinimare . si /) dar mai pot fi alti vectori de atac?

Si o alta rugaminte/intrebare, ma puteti ajuta cu un exemplu de implementar(exemplu clasa implementand interfata, link, PoC cele mai bune practici etc) a SessionUpdateTimestampHandlerInterface, documentatia este 0 pe situl php.



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: SessionHandlerInterface intrebari

Mesajde nevvermind » Vin Apr 27, 2018 7:57 pm

Ar trebui sa refolosesti o librarie PHP, si sa nu scrii tu alta, decat in scop pedagogic: https://packagist.org/packages/rcastera ... ession&p=0

Poate ai motivele tale, dar eu n-as implementa o interfatza doar ca sa mut fisierele in alt folder. De ce nu schimbi folderul unde PHP insusi salveaza fisierele? http://php.net/manual/en/function.session-save-path.php

Mai mult, as folosi Redis pt sesiuni, caz in care nu mai ai problema cailor de fisiere, si ca bonus, totul devine mai scalabil.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

danutz0501
Average Member
Mesaje: 104
Membru din: Vin Sep 10, 2010 7:43 pm

Re: SessionHandlerInterface intrebari

Mesajde danutz0501 » Sâm Apr 28, 2018 7:20 pm

Ms de info si stiu "nu ar trebui sa reinventez roata".
Scopul meu nu e sa schimb doar folderul unde sunt salvate. Face parte dintr-un mic exercitiu in care incerc sa creez un simplu layer HTTP(sesiuni, cookie, request, response, router ,file upload).
La final e foarte posibil sa folosessc ceva deja facut (gen symfony http layer)sau poate nu. Oricum ma va ajuta sa inteleg mai bine protocolul cu care lucrez si mesajele dintre server si browser.

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: SessionHandlerInterface intrebari

Mesajde nevvermind » Sâm Apr 28, 2018 7:51 pm

Ok, deci e in scop pedagogic.
Eu unul evit @ unde pot. Evit si file_get_contents(), fiindca poate accesa si URL-uri (daca PHP-ul e setat astfel). Mai degraba folosesc o combinatie de is_file/is_readable/fopen/fread etc. Am mai mult control.

Nu-ti recomand sa interceptezi sesiunea pt a capta informatii. Nu stiu cat poti invata de-acolo. Plus ca risti sa creezi noi bug-uri.
Poti folosi ceva mai putzin intruziv, precum captarea request-urilor in loguri.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

danutz0501
Average Member
Mesaje: 104
Membru din: Vin Sep 10, 2010 7:43 pm

Re: SessionHandlerInterface intrebari

Mesajde danutz0501 » Joi Mai 03, 2018 12:44 am

AI dreptate, dar tot o sa salvez un "login = true", un timestamp pt a face sesiunea valabila 1-2 ore, dupa care sa se distruga etc. Chestii "normale" pt sesiuni pt ca sunt server side si nu sunt in posesia userului. Deci trebuie sa invat un pic si lucrul cu sesiuni.

Si pt a nu crea un nou topic pt o simpla intrebare, care ar fi cea mai buna metoda pt testarea unui simplu "layer http/restful api". Pt cod e relativ usor cu unit test, exista asa ceva si pt requesturi http, o librarie / soft care sa ma ajute ?

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: SessionHandlerInterface intrebari

Mesajde nevvermind » Joi Mai 03, 2018 12:50 am

Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Google [Bot] și 19 vizitatori