1. Actualizarea codului:
1.1. Căutați un fișier
clase / acțiuni / ActionLogin.class.php
În funcția EventAjaxLogin (), după o linie (85 de linii):
Adăugați următoarele linii
1.2. Căutați un fișier
clase / modules / user / User.class
În funcția Init (), după linia (71 linie):
Adăugați următoarele linii
În funcția Authorization (), după liniile (după linia 526):
Adăugați următoarele linii
În funcția Logout (), după linia (571 linii):
Adăugați următoarele linii
2. Actualizarea șablonului (utilizând sionul de șablon implicit):
2.1. Căutați un fișier
șabloane / skin / synio / window_login.tpl
În funcția EventAjaxLogin (), după o linie (85 de linii):
După 40 de linii:
Adăugați următoarele linii
2.2. Căutați un fișier
șabloane / skin / synio / actions / ActionLogin / index.tpl
După 18 linii:
Adăugați următoarele linii
3. Adăugați limbi (utilizând exemplul limbii ruse)
3.1. Căutați un fișier
șabloane / limbă / rusă.php
După linia 23
Adăugați următoarele linii
Salvăm și le folosim.
IP se poate schimba Nu bifați
UserAgent - include numărul versiunii, care se va modifica după fiecare actualizare a browserului, ceea ce va duce la resetare. Să corectăm
UserAgent - include numărul versiunii, care se va modifica după fiecare actualizare a browserului, ceea ce va duce la resetare. Să corectăm Nu este necesar
Ei bine, sesiunea kagbe de pe server nu durează prea mult. De exemplu, pe debian aceasta este 1440 secunde în mod implicit. Prin acest interval de timp pe server, sesiunea nu mai există și nu există nimic de verificat. Este necesar să lucrați cu tabelul sesiunilor și să închideți sesiunea persistentă, sau sesiunea (care se deschide cu un semn «să-mi amintesc»).
Funcția Kagbe Logout.
o bifă "amintesc-mă" creează un cookie care este abandonat de funcția Logout a modulului Utilizator.
Funcționalitatea Kakbe adaugă opțiuni, mai degrabă decât reguli dure de legare pentru IP și UserAgent.
Scrie ceva în sesiune și verificați că nu are rost, sesiunea va cădea din nou. Această tehnică protejează numai dacă un atacator fură cookie-ul sesiunii și îl trage la timpul de viață al sesiunii de server. Dacă ar fi furat un cookie persistent (cheia sesiunii), ar merge calm, redescoperind o nouă sesiune. Pe cealaltă parte a scării există o experiență de utilizare răsfățată.
Este necesar să faceți cum am spus mai sus - să scrieți IP-ul în tabelul sesiunii, să închideți cele vechi și să deschideți altele noi, să le închideți cu forța atunci când schimbați IP-ul, să verificați, între altele, dacă sesiunea a fost închisă.