Pagina 1 din 1

SessionHandlerInterface intrebari

Scris: Joi Apr 26, 2018 4:24 pm
de danutz0501
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.

Re: SessionHandlerInterface intrebari

Scris: Vin Apr 27, 2018 7:57 pm
de nevvermind
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.

Re: SessionHandlerInterface intrebari

Scris: Sâm Apr 28, 2018 7:20 pm
de danutz0501
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.

Re: SessionHandlerInterface intrebari

Scris: Sâm Apr 28, 2018 7:51 pm
de nevvermind
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.

Re: SessionHandlerInterface intrebari

Scris: Joi Mai 03, 2018 12:44 am
de danutz0501
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 ?

Re: SessionHandlerInterface intrebari

Scris: Joi Mai 03, 2018 12:50 am
de nevvermind