Documente Academic
Documente Profesional
Documente Cultură
PS: Ce este marcat cu galben, poate fi păstrat într-o variabilă sau mai pot fi
utilizate și superglobale, astfel:
header('Location: http://'.$_SERVER['SERVER_NAME'].$cale.'meniu.php’);
unde $cale = "cursL/inreg_aut_file/"; - în cazul meu
Inregistrarea unui utilizator
într-o aplicație
Înregistrare = Creare cont = Sign Up
Crearea unui cont într-o aplicație sau site web, are avantaje - și
utilizatorul trebuie să le cunoască. Un utilizator se înregistrează: pentru
a putea intra mai târziu într-un spațiu închis/ restricționat sau pentru a
i se face livrarea produselor cumpărate dintr-un magazin online etc.,
etc.
(
12 Ways to Create a User-Friendly Website Registration Process (hubsp
ot.com)
)
Ar fi bine ca în formularul de înregistrare să fie solicitate doar date utile
aplicației, precum: numeUtilizator (userName)/ email, parola, alte
câteva date de contact pentru a putea interacționa cu el... Contează
foarte mult care este destinația datelor colectate de la utilizator prin
formularul de înregistrare...
Exemple formulare de
inregsitrare
Credențiale
Credențialele se referă la posibilitatea verificării identității unui
utilizator/ sistem sau se pot referi la instrumentele utilizate
pentru autentificare
Acestea pot deriva dintr-un certificat sau dintr-un alt proces,
precum cel de înregistrare și pot fi utilizate de procesul de
autentificare
Credențialele ajută la confirmarea identității unui utilizator
Într-o aplicație web vom considera credențiale
userName-ul și parola (pasword)
SignUp VS SignIn
Autentificare
Autentificarea este procesul de a determina dacă cineva sau ceva
este, de fapt, cel care pretinde că este
Procesul de autentificare presupune controlul accesului la sisteme
informatice sau aplicații, prin verificarea dacă credențialele unui
utilizator se potrivesc cu credențialele stocate într-un fișier sau bază
de date, ale utilizatorilor
Autentificarea asigură că sistemele informatice sau aplicațiile sunt
securizate
Notă: pentru ca să existe această siguranță că un utilizator interacționează cu
un sistem securizat, atât procesul de autentificare, cât și cel de înregistrare –
trebuie corect implementate
Tipuri de autentificări
Cea mai simplă metodă de implementare a autentificării într-o
aplicație web este autentificarea prin parolă – un cuvânt secret
cunoscut doar de utilizator... Se mai numește această metodă și
autentificare printr-un singur factor (
What is single-factor authentication (SFA)? | Definition from TechTarget)
Dar... există și noțiunea de autentificare multifactorială
În ultimii ani, tot mai multe companii au implementat autentificarea
solicitând factori de autentificare suplimentari, cum ar fi un cod unic
care este furnizat unui utilizator pe un dispozitiv mobil sau atunci când
se încearcă o semnătură biometrică, se solicită o scanare facială sau o
amprentă digitală. Aceasta este cunoscută sub numele de
autentificare cu doi factori (2FA -
What is Two-Factor Authentication (2FA) and How Does It Work? (techtarget.com)
)
Autorizarea
utilizatorului
Autorizarea se referă la drepturile de acces ale utilizatorilor și la
ceea ce poate face un utilizator într-o aplicație sau un sistem
informatic
Autorizarea este de obicei folosită ca mijloc de control al accesului
la resursele dintr-un sistem informac sau aplicație. Aceasta implică
verificarea identității unei entități (utilizator/ dispozitiv/ sistem) și
determinarea dacă acea entitate are permisiunea de a opera cu o
anumită resursă
Acest proces este de obicei gestionat de sistemele de autorizare,
care verifică credențialele în raport cu regulile prestabilite, la etapa
de formulare a cerințelor și de definire a rolurilor și ale drepturilor
de acces per rol la resursele aplicaței sau sistemului
Codificarea
PAROLELOR
În aplicațiile web cel mai frecvent autentificarea se implemenează prin utilizarea
parolelor – cuvintelor secrete. Parolele fac parte din categoria datelor sensibile și nu
se recomandă să fie pătrate sub formă de text (deschis) în fișiere sau BD
Se recomandă ca parolele, păstrate în fișiere, BD, să fie ascunse ochiului uman –
adică trebuie să fie aplicate funcții-hash
Există mai mulţi algoritmi de hash-ing, implementaţi în funcţii PHP: md5() –
criptează un string, sha1() etc.
Suplimentar este funcția hash(), ce permite specificarea unui algoritm de hashing:
hash(sha256, "password");
Funcția md5() generează codul hash MD5 al unui șir de simboluri (un text cu
lungimea de 32 de simboluri)
Această funcţie nu permite decodificarea datelor deja codificate prin intermediul ei
Extras din standardul RFC 1321 - The MD5 Message-Digest Algorithm: "The MD5 message-digest algorithm takes as input a message of arbitrary length
and produces as output a 128-bit "fingerprint" or "message digest" of the input. The MD5 algorithm is intended for digital signature applications, where
a large file must be "compressed" in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.«
Puteti citi suplimentar: https://ru.wikipedia.org/wiki/OWASP
”Sarea” pentru parole
◦ Hashingul parolelor în bază sării se folosește pentru a îmbunătăți securitatea parolei,
adăugând straturi suplimentare, aleatoare, peste procesul de hashing
◦ Sarea (salt) este un șir aleatoriu, sigur din punct de vedere criptografic, care este
adăugat la o parolă înainte de a se aplica hash-ul. Sarea ar trebui să fie stocată împreună
cu hash-ul, ceea ce îl poate pune în dificultate pe un atacator să cunoască textul original
al parolei
◦ Acest proces este adesea folosit în combinație cu, de exemplu bcrypt
◦ Hashingul sărat este un proces mult mai complex și mai sigur, deoarece fiecare hash
necesită utilizarea unei „sări” diferite și aleatorii, care acționează ca un strat suplimentar
de criptare
◦ BCRYPT, ARGON – în PHP poate fi utilizată funcția predefinită password_hash() (
https://www.php.net/manual/en/function.password-hash.php)
Sarcina pentru acasa
http://localhost/exemple/lab4_6_ex/
!!!
Cunoştinţe: