1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

A trebuit să trimiteți ceva la formularul de pe site și să primiți mesajul "Sesiunea dvs. a expirat"?

Toți cei cărora le-am adresat această întrebare au confirmat și au răspuns puternic și au blestemat că au scris un post remarcabil și.





bang, totul este pierdut. Eu însumi am pierdut recent un post foarte bun și nu am început să rescriu până acum regretul textului.

Învățăm repede experiența dureroasă și majoritatea au dezvoltat deja regula că toate mesajele mari sunt copiate în memoria tampon înainte de a da clic pe butonul de formular.







Astăzi vreau să vă spun cum am rezolvat această problemă și de ce acum veți deveni mai buni - pentru că dumneavoastră și clienții dvs. nu vă veți mai confrunta cu astfel de probleme atunci când lucrați cu produsele companiei noastre

Ce este o sesiune și de ce au inventat aceste lucruri?

Sesiunile au fost inventate de dezvoltatorii web pentru a le identifica pe vizitatori. A inventat o lungă perioadă de timp și a fost utilizat cu succes în întreaga lume.

De fiecare dată când accesați orice site web, sistemul pentru dvs. vine cu un număr de sesiune unic și pagina vă este oferită cu acest număr unic. Toate apelurile ulterioare către acest site sunt deja cu ID-ul sesiunii. Deci, dezvoltatorii web au învățat să înțeleagă că toate cererile vin de la dvs., nu de la altcineva.

Ie sesiune - aceasta este întreaga sesiune cu site-ul web de la prima conectare la site și la finalizarea lucrului cu site-ul.

Aici este problema cu dezvoltatorii. Cum pot determina dacă o sesiune de utilizator este finalizată?

Puteți să beți cafea, să fumezi o țigară sau să scrieți un mesaj pe un blog sau forum pentru o lungă perioadă de timp.

Utilizatorii sunt indignați. De ce nu puteți face o sesiune fără sfârșit, dacă dvs., un dezvoltator de web, nu puteți face site-uri fără ea.

În general, astăzi, în comunitate sa dezvoltat o practică în care participanții au o durată de 20-30 de minute. Ie Dacă ați deschis pagina a site-ului, și 30 de minute nu a mers la alte pagini ale site-ului și nu a primit o nouă pagină în sesiune - un server web a decide pur și simplu că ați plecat și a termina sesiunea fără a se mai gândească, să scrie un post pe blog-ul sau întors de la pauză și completați un formular important.

Ce urăsc când expiră sesiunea mea?

Am văzut în mod repetat încercări de a rezolva această problemă.

De obicei, fac o prelucrare a formularului, astfel încât, chiar dacă sesiunea expiră, utilizatorul poate introduce un login și o parolă, iar datele din formular vor fi primite în întregime. Am motivat în același mod și am făcut o astfel de procesare în forumuri, bloguri și alte forme. Dar ca metodă nu sa dovedit foarte bine. Și nu am putut să urmăm toți și, cel mai important, partenerii noștri nu au timp să se gândească deloc la asta. Și chiar dacă totul se face bine prin această tehnică, utilizatorul vede primul mesaj că sesiunea a expirat și deja se apucă de inimă și se supără pe tine.

O altă modalitate este de a avertiza utilizatorii că sesiunea a expirat. Serverul web, atunci când creează o pagină, știe durata sesiunii și, când se apropie de finalizarea acesteia, poate avertiza utilizatorul.

Un exemplu recent este Alfa-Click. Serviciul bancar are o mare nevoie de respectarea siguranței utilizatorului. Când sesiunea se apropie de finalizare, apare un mesaj.

1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

Dacă vă aflați la calculator și faceți ceva pe pagină, apăsați repede butonul rapid, respirați adânc și spuneți mulțumit Alfa-Click că nu te-a făcut supărat.

Sesiune live - te vom face mai buni, dar nu o vei cunoaște

Recent am decis să găsim o soluție de sistem pentru această problemă, astfel încât toate site-urile de pe platforma noastră să devină mai ușor de utilizat.

Îmi amintesc dezvoltatorilor că, atunci când creăm o pagină, știm lungimea sesiunii și momentul în care a fost creată această pagină. Rețineți că acest timp este gestionat de modulul de securitate, indiferent de setările serverului web.

În browser-ul utilizatorului, începem încet numărătoarea inversă. Cu câteva minute înainte de sfârșitul sesiunii, pornim capul și vedem dacă este viu sau nu. Verificăm când au fost ultimele clicuri pe tastatură, clicuri și mișcări ale mouse-ului și ... ne-am prelungit imperceptibil sesiunea pentru utilizatori dacă este încă în viață. Ie Trimitem o cerere catre serverul web, astfel incat serverul sa stie ca acest vizitator este in continuare cu noi. Sesiunea este extinsă pe server și nu sunt afișate mesaje utilizatorilor.

Sesiune live - trăiește la fel de mult ca utilizatorul care lucrează cu site-ul.

Dacă nu prezintă semne de viață pe durata sesiunii, nu se mișcă mouse-ul în fereastra de browser, nu scrie textul, nu clic sau nu ecranul tactil, în general, dacă ați uitat despre această pagină - vă vom arăta un mesaj aici.

1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

Acest mesaj va apărea atât în ​​secțiunea administrativă, cât și în paginile publice ale site-ului.

1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

Și, bineînțeles, puteți gestiona o sesiune live în setările modulului principal.

1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

Am simplificat prezentarea pentru tine un pic. Implementarea sa dovedit a fi destul de complicată. Am planuit să o facem în câteva zile, când am venit cu o soluție. Dar, de fapt, Vadim Dumbravan a trebuit să petreacă două săptămâni combinând ideea cu sistemul de securitate și testele de securitate, ocolind problemele legate de găzduire, compatibilitate și testare.

Acum suntem foarte mulțumiți de implementare și vă place.

Soluția va fi disponibilă începând cu versiunea modulului principal 9.5.7, disponibil în prezent în modul beta. Un pic de alungare si lasa pe toata lumea pentru munca.

O sesiune live ne va face mai buni ca niciodata pentru noi

1C Dezvoltatori Bitrix - Urăsc când sesiunea expiră și datele sunt pierdute! Sesiune live

Este corect menționat faptul că sesiunile sunt "de la programator". Știți despre acest utilizator absolut nu aveți nevoie și chiar mai mult, astfel încât nu trebuie să pierdeți de lucru și de date de utilizator. În acest sens, implementarea actuală nu face rău și salvează.

Imaginați-vă că am mers cu adevărat la prânz sau altceva de făcut. Mai mult de 30 de minute. Sesiunea mea "va feste" și voi avea de a face cu datele pe care le-am introdus deja.

Acesta este doar un astfel de scenariu. Poate încă să vină. Este clar că în timp ce utilizatorul poate copia toate câmpurile, de exemplu, într-un fișier text (cu pierderea formatării) sau, de exemplu, în Word (cu glitches ulterioare cu postare inversă). Sau puneți-vă un utilitar cu suportul unei stive de copiere-lipire. De asemenea, o soluție.

Toate acestea sunt cârje datorită faptului că razabotchik nu crede că o persoană nu are grijă de o sesiune și așa mai departe. Am nevoie de o clătite pentru a lucra!

Există mai multe opțiuni care mi-au venit în minte:
1) Nu ucideți sesiunea deloc, dacă conexiunea este deschisă (deschideți fereastra în browser, există Internetul).

2) Sesiunea poate fi cuie, dar atunci când postați un formular, trebuie să salvați TOATE datele, să întrebați utilizatorul pentru parolă și să finalizați efectiv acțiunea efectuată de utilizator făcând clic pe butonul

Este clar că există și excepții sub forma băncilor. Dar acestea sunt excepții, care confirmă strict regulile. În cazul băncilor, sesiunea este întreruptă nu din cauza problemelor noastre legate de frânare sau de numărul mare de sesiuni. Cred că aceste probleme au fost rezolvate. Există un motiv sigur. Acesta este motivul pentru care este ușor de înțeles pentru orice utilizator.

) Nu ucideți sesiunea deloc, dacă conexiunea este deschisă (deschideți fereastra în browser, există Internetul).


Protocolul HTTP se referă la așa-numitele protocoale fără stat, care nu au conceptul de sesiune sau sesiune. Acest lucru face foarte simplu și rapid, dar creează și o problemă despre care vorbim. Deci, nu va funcționa fără o sesiune.

2) Sesiunea poate fi cuie, dar atunci când postați un formular, trebuie să salvați TOATE datele, să întrebați utilizatorul pentru parolă și să finalizați efectiv acțiunea efectuată de utilizator făcând clic pe butonul


Facem deja acest lucru, am scris mai sus. Dacă sunteți îngrijorat de un mesaj, îl puteți dezactiva.

Scopul mesajului este doar acela de a avertiza utilizatorul că problemele sunt posibile.

Și totuși, din nou atenția atenției, mesajul apare numai când sesiunea a expirat într-adevăr. Dacă tocmai stați pe pagină și faceți ceva cu el, vom extinde sesiunea și nu vom arăta nimic utilizatorului. Anterior, acest lucru nu a fost făcut și problemele au fost mult mai mult, indiferent dacă știți despre sesiune sau nu.

Apropo, răspunsul pe care l-a scris între convorbiri lungi se întindea pentru a face o copie-pastă din obișnuință, a rezistat și a apăsat postul. Sesiunea este încă în viață.

Serghei, Vadim, mulțumesc pentru inovația folositoare! Problema, într-adevăr, este foarte relevantă.

Cu toate acestea, după cum sa menționat deja mai sus, soluția dvs. are încă o serie de deficiențe. De la cap la cap a venit o serie de propuneri de îmbunătățire

1. Nu cred că extinderea automată a sesiunii necondiționate numai pe paginile cu formulare deschise va crește semnificativ încărcarea pe server. Această soluție va elimina complet pierderea de date în timpul unei pauze de fum, gustare, sparring, etc.)) În ceea ce privește siguranța, atunci nu există personal, eu pot vedea doar două amenințări: capacitatea de a introduce date incorecte sau falsificate sub formă de trecere prin calculator temporar fără de către un atacator și o ușoară Creșteți timpul pentru a intercepta sesiunea pentru un atacator savvy. După postarea formularului, mutați la o altă pagină a site-ului (care este fără formă), închiderea ferestrei browserului sesiunea de reînnoire automată, nu va exista nici o acțiune, care este, sarcina medie pe serverul de web nu se va schimba.

2. În cazul în care, cu toate acestea, etapa de mai sus nu este acceptabil pentru standardele actuale de siguranță și performanțele produsului, acesta poate fi prevăzut, de exemplu, unele ferestre discret, cu un buton sau verificați a la „O să stau, nu ucid sesiunea mea“ localizat „de pe site-ul“ în zona de vizibilitate a utilizatorului.

4. Dacă nu renunțați la mesajul de avertizare, puteți să ne oferiți un buton "Copiați datele introduse în clipboard". Deși, din nou, sistemul de plicuri stocate în cookie-uri, poate, va fi mai interesant.

Asta e inventat cumva într-o grabă, așa că nu jură prea mult, dacă prostia clipește

Acum, cu colegii au venit cu o altă îmbunătățire semnificativă a mecanismului cu Live Sessions

Acest lucru va determina mesajul să fie afișat utilizatorului numai dacă serverul va solicita autentificarea și parola pentru el. Ie 99% dintre vizitatorii obișnuiți ai site-ului nu vor vedea mesajul nostru și vor fi garantați și vor lucra cu încredere în site.

În general, totul este foarte dificil la sesiuni din motive de securitate. Identificatorii sunt în continuă schimbare, sesiunea este protejată de un identificator special, legat de IP și de multe alte trucuri.

Dar am găsit o soluție sigură în ceea ce privește păstrarea tuturor politicilor de securitate și asigurarea funcționării corecte a sesiunilor Live.


Da, probabil că am fost entuziasmat. Vreau să spun că pentru utilizatorii obișnuiți există, de obicei, o politică de securitate simplă și intră pe site doar pentru a-și aminti singuri.

8-800-250-1860 Contactați-ne Harta site-ului
Website design -





Trimiteți-le prietenilor: