|
alopia
|
 |
« : Iulie 19, 2007, 02:51:25 » |
|
|
|
|
|
|
Memorat
|
|
|
|
bassul
Moderator
Webmaster
   
Karma: +6/-4
Mesaje: 605
Past and future obviously have no reality...
|
 |
« Răspunde #1 : Iulie 19, 2007, 07:44:20 » |
|
Pentru securitate sporita, cel putin intr-un mediu shared, iti doresti probabil sa definesti un director custom pentru salvarea sesiunilor, nu default-ul (/tmp sau care o fi). De asemenea timpul limitat de pastrare al sesiunii.
Cat despre User Agent, probabil ca cel care stie sa se injecteze in traficul facut de un anumit browser stie sa disimuleze si User Agent, Referer si alte chestii. Yahoo, spre exemplu, se protejeaza la asa ceva cerand inca odata parola prin https pentru chestii mai sensibile, iar aplicatiile bancare folosesc https all around.
|
|
|
|
|
Memorat
|
prefer ROHOST
|
|
|
|
Tomoiaga
|
 |
« Răspunde #2 : Iulie 19, 2007, 09:23:49 » |
|
Daca ai "acces" la server poti sa compilezi php-ul sa salveze sesiunile direct in memorie, fara /tmp sau altele, plus, cresti si viteza de citire scriere la sesiuni.
|
|
|
|
|
Memorat
|
TC
|
|
|
vladb
Vizitator
Karma: +0/-0
Mesaje: 1
|
 |
« Răspunde #3 : Iulie 23, 2008, 09:05:08 » |
|
Verificarea IPului e problematica. Unii provideri (AOL fiind in capul listei) trec traficul prin proxyuri si e posibil ca IPul unui request sa nu corespunda cu urmatorul. Nu stiu daca la noi procedeaza cineva asa, insa posibilitatea exista. O buna practica este evident schimbarea session id-ului la fiecare request - orice verificari trebuie insa analizate atent pentru ca risti sa blochezi accesul unor utilizatori legitimi.
Cat despre sesiuni in memorie, am incercat cu memcache iar rezultatul (benchmark cu ab) a fost o incetinire, asa ca am dat inapoi. Da, foloseam conexiuni persistente cu serverul memcache. E destul de surprinzator si nu exclud posibilitatea unei greseli de partea mea, desi n-am putut sa-mi dau seama unde; php. ini nu ofera prea multe optiuni cu privire la engineul de stocare iar serverul memcache este configurat ok si folosit cu succes in mod curent pentru a destresa mysql.
|
|
|
|
|
Memorat
|
|
|
|
|
dt
|
 |
« Răspunde #4 : Iulie 25, 2008, 11:15:23 » |
|
|
|
|
|
|
Memorat
|
Daniel Toma
|
|
|
|
alopia
|
 |
« Răspunde #5 : August 20, 2008, 07:57:27 » |
|
Verificarea IPului e problematica. Unii provideri (AOL fiind in capul listei) trec traficul prin proxyuri si e posibil ca IPul unui request sa nu corespunda cu urmatorul.
Dupa cum ziceam in postul original "daca IP-ul sau User agentul nu corespunde orice utilizator logat pe acea sesiune este scos si se regenereaza o noua sesiune si se salveaza citeva informatii despre acest posibil atac asupra site-ului". Well am lasat sa treaca citeva luni si am strins toate logurile de pe site-urile unde foloseam perechea session id/IP. S-au adunat doar citeva zeci de situatii in care au existat neconcordante candidate la situatia pe care o remarcai tu. Un numar absolut infim. Din analiza logurilor cred insa ca si din astea 99% au fost situatii de paste link care includea session id. Revenind la celelalte comentarii era oarecum de asteptat sa primesc sfaturi aici din persepectiva hoster-ilor. Din pacate in viata de zi cu zi de web designer te confrunti cu o gramada de conturi de gazduire unde nu ai nici un control si treaba ta e doar sa scri codul cit mai bine. Cat despre https sunt perfect de acord dar nu toata lumea isi permite sau vrea certificate SSL pentru un simplu forum sau alte lucruri de acest tip. Am mai remarcat o alta metoda foarte uzitata in ro pe diverse site-uri (unele supercunoscute): setarea unui cookie continind un id unic generat la logare. Care fiind client side deschide posibilitati mirifice de atac.
|
|
|
|
|
Memorat
|
|
|
|
Gupi
Furnizor servicii
Hostmaster
   
Karma: +28/-4
Mesaje: 2549
Hangar Hosting, SRL
|
 |
« Răspunde #6 : August 20, 2008, 08:42:30 » |
|
... Cat despre https sunt perfect de acord dar nu toata lumea isi permite sau vrea certificate SSL pentru un simplu forum sau alte lucruri de acest tip. ...
CACert.org ofera certificate SSL gratuite, perfect valabile tehnic, dar nerecunoscute de browsere. Daca le explici utilizatorilor de ce le apare mesajul de eroare si ii pui sa desccarde/instaleze root-certificatul de la CACert, poti securiza site-ul foarte bine si ieftin.
|
|
|
|
|
Memorat
|
Stefaniu -gupi- Criste
|
|
|
|
alopia
|
 |
« Răspunde #7 : August 21, 2008, 07:58:35 » |
|
Am incercat si eu recent Gupi pe un site sa folosesc un certificat free de la CACert.org. Rezultatul a fost ca peste 90% din userii cu mozilla 3 nu depaseau niciodata prima pagina... cred ca incercau accesul la login probabil cu intentia de a se loga si acolo ramineau cand dadeau cu nasul de mesajul de eroare. In celelalte browsere unde warning-ul e mai putin evident abandonul a fost mult mai redus  Problema e ca nu prea apuci sa le explici ce se intimpla pentru ca majoritatea interpreteaza mesajul total aiurea si pleaca urgent. Am atasat un screenshot sugestiv cu mozilla 3 face to face cu CACert.org. Cred ca multi confunda la repezeala mesajul cu page not found sau o problema tehnica a serverului mai ales datorita asemanarii cu alte tipuri de mesaje de eroare si mai cred ca modul in care afiseaza mozilla mesajul este total neinspirat datorita confuziei clare ce se creeaza intre utilizatorii obisnuiti.
|
|
|
|
« Ultima modificare: August 21, 2008, 08:03:00 de către alopia »
|
Memorat
|
|
|
|
|
alopia
|
 |
« Răspunde #8 : August 21, 2008, 08:15:59 » |
|
 Am facut un experiment interesant mai adineauri pe messenger ... mass la prietenii cu mai putine cunostinte tehnice cu link catre https://www.CACert.orgCateva raspunsuri aproape identice: "Nu merge linku..." "Cu ce browser te-ai uitat?" "Mozilla..."
|
|
|
|
|
Memorat
|
|
|
|
Gupi
Furnizor servicii
Hostmaster
   
Karma: +28/-4
Mesaje: 2549
Hangar Hosting, SRL
|
 |
« Răspunde #9 : August 22, 2008, 07:31:24 » |
|
@alopia, tratarea problemei se face invers: - mai intai anunti pe site ca o sa instalezi un certificat de securitate de la CACert si prezinti urmarile posibile - lasi o perioada site-ul sa ruleze dual (si http:// si https://, invitand utilizatori sa incerce si sa raporteze erorile) - in aceasta perioada te asiguri ca utilizatorii instaleaza root-certificate de la CACert; - dupa 2-3 luni fortezi doar folosirea cu https:// a site-ului; optional, poti lasa prima pagina necriptata, in care explici din nou situatia cu certificatul de la CACert.
Desigur, ai si solutia alternativa, comerciala. Costa cam 15-20 euro/an pentru un certificat SSL.
|
|
|
|
|
Memorat
|
|
|
|
|
|
|
alopia
|
 |
« Răspunde #11 : August 22, 2008, 11:40:10 » |
|
Costa cam 15-20 euro/an pentru un certificat SSL.
Cum spunea si LiveHosting se gasesc mult mai ieftin. Noi de exemplu vindem un GeoTrust RapidSSL cu 14 Euro in romania. Oricum topicul s-a deturnat mult. Eram mai degraba interesat de diverse solutii pentru sesiune PHP/login INDEPENDENTE de contul de gazduire. Multa lume cred dezvolta propriul CMS care-l foloseste la o gramada de site-uri unde repet de multe ori nu ai control asupra serverului. Unde ai sau nu certificate SSL. Unde clientul vrea sau nu certificate SSL. Unde admin-ul serverului "uita" sa defineasca un director custom pt. sesiuni. In cazul meu acest CMS mai este si free open source... Legat de CACert ce vroiam sa remarc in comentarii este ca nu reprezinta o solutie viabila atita timp cit nu e recunoscut de browserele majore si in unele cazuri iti face un deserviciu enorm. La cit timp au si ce superficiali sunt unii utilizatori repet ma indoiesc ca va sta cineva sa citeasca explicatii alambicate despre instalat root-certificate de la CACert. Poate pe un forum tehnic mai merge. Asadar scopul topicului era mai degraba sa enumeram diverse metode in PHP de a rezolva metoda login-ului. Eu am enumerat 2 metode, cea a perechii de SID/IP si cea a setarii unui cookie continind ID unic generat la logare. Care fiind client side clar poate fi furat. Sunt enorm de multe site-uri care folosesc metoda din urma unde e de ajuns sa clonezi cookie-ul ala si esti logat de exemplu. Metoda simpla cea din manualul PHP are si ea dezavantajele ei si depinde enorm de configurarea serverului. Cat despre furtul parolelor sau altor date senzitive de catre "man in the middle" acolo cred ca la final toti suntem expusi mai mult sau mai putin.
|
|
|
|
« Ultima modificare: August 22, 2008, 11:46:49 de către alopia »
|
Memorat
|
|
|
|
|
alopia
|
 |
« Răspunde #12 : August 22, 2008, 11:57:35 » |
|
|
|
|
|
« Ultima modificare: August 22, 2008, 12:02:35 de către alopia »
|
Memorat
|
|
|
|
bassul
Moderator
Webmaster
   
Karma: +6/-4
Mesaje: 605
Past and future obviously have no reality...
|
 |
« Răspunde #13 : August 22, 2008, 06:46:34 » |
|
clar discutia iese mult in afara necesitatilor unui CMS. alopia, cred ca cel mai folositor este sa lasi partea de autentificare si de sesiuni extensibila prin module, si atunci fiecare va folosi ce i se potriveste mai bine.
O aplicatie care are necesitati de securitate va folosi oricum SSL, iar o bancara sau similara va folosi oricum o alta metoda externa de autentificare, deci singurele setari de securitate folosibile din CMS ar fi ca link-urile sa suporte SSL, lungimea sesiunilor, sesiuni bazate pe IP sau nu si modul de stocare al lor.
|
|
|
|
|
Memorat
|
|
|
|
pitagora
Vizitator
Karma: +0/-0
Mesaje: 5
|
 |
« Răspunde #14 : Noiembrie 07, 2008, 10:55:12 » |
|
session hijacking-ul se rezolva pe site-uri bancare (sau alte site-uri criticie) punand in fiecare form sub forma de camp hidden un token unic, care daca nu este transmis corect la urmatoarea pagina automat invalideaza sesiunea. Dezavantaje ar fi ca nu se va mai naviga cu mai multe tab-uri pe acelasi site.
|
|
|
|
|
Memorat
|
|
|
|
|