Cum pui parola pe o pagină

pagina parolă. Partea 1. Mai degrabă teoretică

Am adăuga două lucruri. În primul rând - în cazul în care acest lucru este de a pune fișierul .htpasswd. Prin experimentare, am constatat că, dacă, de exemplu, calea către documentul cu un mesaj de eroare (ErrorDocument) este scris în raport cu un sistem de DocumentulRădăcină variabilă. Dar calea către fișierul de parole (UserFile) este scris cu privire la ServerRoot. În ceea ce am înțeles, de mai sus a pus ServerRoot .htpasswd imposibil - „../“ nu este perceput. Toate acestea se face în scopul de a fi capabil de a pune fișierul de parole, de exemplu, un nivel mai sus directorul rădăcină al unui site la dosarul rețelei de acces nu a existat.

Al doilea - este că script-ul se poate afla cine se deschide, și parola dvs.: variabilele PHP_AUTH_USER $ și $ PHP_AUTH_PW.

Fiecare pagină din zona închisă se conectează cu un cod ca acest fișier:

Prima linie a șterge toate datele de conectare caractere, cu excepția litere, cifre, cratime și subliniere. Apoi, numărul de linii primite este verificată și numai în cazul în care o singură linie de acces este dat. În alte cazuri, utilizatorul va vedea în fereastra de browser care vă solicită să introduceți numele de utilizator și parola. În cazul în care utilizatorul este conectat cu succes, matrice $ user_row avem toate informațiile cu privire la aceasta.

Desigur, exemplul pe care l-am dat, are unele dezavantaje majore. Nu copiați-l unu-la-unu, astfel încât să nu cădea victimă a ghicirea parolei încercări, deoarece
  • protecția selecției nu este aici
  • în cazul în care masa de utilizatori este mare, selectarea parolei atacatorului este de natură să „umple“ de bază

Și ultima pentru metoda de azi - stocarea datelor criptate într-un cookie.

script-ul de intrare verifică numele de utilizator și parola, și dă două cookie-uri. În primul - conectare, în scopul de a identifica utilizatorul imediat (în câmpul de conectare a bazei de date, desigur, unic, sau chiar o cheie). În al doilea cookie - hash a timpului de intrare și parola (pentru caracterul complet al conspirației, am adăuga aceste linii la litera „Y“ - atunci este aproape imposibil de a alege hash :).

Toate celelalte programe din cod, care face următoarele. Se face o cerere la baza de date - selectează o linie de conectare primite. Din această linie are câmpul „log_time“ și parola și le face, așa cum este descris mai sus, hash. O compară cu faptul că a primit, iar în cazul în care se potrivesc, emite un nou hash cookie, din nou, prin parolă, timp, și litera „Y“, și face o cerere către baza de date „SET utilizator UPDATE log_time =«»unde $ autentificare =“ cookie_login '“.

pagina parolă. Partea 2: selecție de blocare

Când am pus această problemă în ultima oară, am zapinali în loc, ei spun acest lucru și puteți bloca serverul „deraieze“.

Dar, mai întâi, de blocare de selecție. Platitudini, dar încă. Lungimea parolei de zece caractere din literele alfabetului și numerele latin - o mulțime de opțiuni. Dacă selectați parola pentru 1.000.000 de opțiuni în al doilea, va dura câteva mii de ani. Dar, din moment ce acest lucru fără sens este dificil să ne amintim, vom face de multe ori parola de cuvinte semnificative. Acum câțiva ani, sa constatat că majoritatea parolelor vă puteți ridica cu ajutorul unui dicționar de 10.000 de cuvinte. La acea vreme, viermele (un virus) a apărut în rețea, care a urcat pe servere unix, folosind gaura lor în apărare și parolele priveligirovanyh cules utilizatori folosind. Unix dicționar ortografie. Nimic nu trebuie să lug în jurul valorii de!

Fiecare utilizator, în timp ce el nu a intrat numele de utilizator și parola corecte este considerată a fi hacker rău intenționat. Cu ce ​​trebuie să facem atunci când utilizatorul introduce ceva greșit?
  • uitare (acest lucru pe site-uri decente au formochka „uitat parola“ pentru a trimite la setările de sistem introduse în această parolă același e-mail)
  • îngăduința de sine ( „pentru că nefig“)
  • ghicitul dicționar parola (probabilitate de selecție de succes este mare, atât de aproape este necesar, mai ales în cazul în care site-ul de natură comercială)
  • DoS-atacuri (astfel încât să nu suprasarcină server, este necesar să se reducă la minimum acțiunile care se vor executa script-ul într-un astfel de caz)

M-am gândit, cum se poate provoca o supraîncărcare pe server, în cazul în care mecanismul de protecție se află pe fișiere. Sa dovedit, este ușor (cât de mult va costa - este o altă întrebare). Deci, de exemplu, serverul nu poate supraviețui în cazul în care script-ul va încerca la 1000 de ori pe secundă pentru a deschide fișierele de pe înregistrarea și scrie datele în ele. Pentru că, după 5 eșuat logare încearcă un utilizator este refuzat accesul imediat (fără nici o înregistrare a datelor în fișier), este necesar să se găsească IP 200 unic, din care cinci ori și să caute. Este posibil. Rezistă bannerokrutilke html-banner cu cinci tag-uri:

Utilizatorul face instantaneu cinci apeluri un server de cinci ori scrie într-un fișier (de altfel, în unele browsere ar putea apărea o fereastră pentru a introduce numele de utilizator și parola). Puteți face o pagina HTML cu cinci astfel de imagini și pagina însăși, introdusă prin iframe pe site-ul vizitat (prin iframe - la referer câmp nu a găsit cu greu khaljavnogo ce gazduieste echipa de suport se va ocupa cu astfel de lucruri ca săpat în fișierele jurnal din referenți de căutare.) . Acele exemple pe care le-am dat, desigur, sunt întinse, dar faptul că puteți beneficia de un astfel de dezavantaj al sistemului este dovedit. Apropo, ceva de genul asta sa întâmplat înainte.

Și aici este codul de program:

Și în loc să acceseze fișierele noi de lucru cu baza de date.

Un astfel de mecanism este sub o sarcină grea va fi mai rapid și mai fiabile decât fișierele - baza de date utilizate în mod frecvent este tamponată și procesate direct în memoria RAM.

pagina parolă. Partea 3: Parola pentru baza de date

Metoda de conectare, de exemplu, MySQL. Scrieți o funcție, de exemplu, mysql_die:

La începutul programului indică faptul că serverul de bază de date gazdă și, dacă este cazul, numele bazei de date:

Și pentru a se conecta la serverul sunt luate variabile: $ PHP_AUTH_USER și $ PHP_AUTH_PW.

Și totuși. Acum dezavantajele. Desigur, cu o astfel de protecție poate încerca să ridica parola (în principiu, este posibil să se atașeze un sistem de blocare, dar apoi a pierdut toată frumusețea metodei). Parola, la fel ca în cazul serverului mijloacelor de protecție este trimis în clar. Dar acest lucru este destul de rău pentru sarcini simple.

articole similare