Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12385|Răspunde: 0

[Comunicare] 2011 MSSQL Statement Statement Validation Password Vulnerabilitate de Vulnerabilitate de Securitate

[Copiază linkul]
Postat pe 26.11.2014 15:47:51 | | |
Ca o instrucțiune standard internațională de interogare a bazei de date, instrucțiunile SQL au fost utilizate pe scară largă în diverse medii de programare. Fiind un sistem matur și stabil, verificarea autentificării utilizatorului și a parolei sunt esențiale. În munca mea zilnică de programare, am descoperit că mulți programatori folosesc instrucțiuni SQL pentru a verifica parolele utilizatorilor printr-o afirmație de genul aceasta:
sql="Select * din tabelul utilizatorului unde name='"+name+"' și password='"+password+"'"
Numele și parola sunt numele de utilizator și parolele introduse de utilizator, iar instrucțiunile de mai sus sunt executate pentru a verifica dacă utilizatorul și parola sunt legitime și valide. Totuși, prin analiză, se poate descoperi că există lacune fatale în afirmațiile de mai sus. Când introducem următorul șir în numele de utilizator: 111'or'1=1, apoi introducem parola casual, o setăm pe aaaa. După ce variabila este înlocuită, instrucțiunea SQL devine următorul șir:
sql="Select * din tabelul utilizatorului, unde nume='111'or'1=1' și parola='aaaa'
Știm cu toții că atunci când instrucțiunea select judecă condițiile de interogare, va ignora următoarele și (și) operații atunci când întâlnește sau (ou) operații, iar valoarea 1=1 din instrucțiunea de mai sus este întotdeauna adevărată, ceea ce înseamnă că, indiferent de valoarea introdusă în parolă, aceasta poate trece verificarea parolei de mai sus! Soluția la această problemă este foarte simplă și există multe metode, cea mai frecvent folosită fiind evaluarea legitimității utilizatorului și a parolei introduse de utilizator înainte de a efectua verificarea, iar caractere speciale precum ghilimele simple și semnele egale nu sunt permise.
Problemele de mai sus, deși pot părea simple, există. De exemplu, versiunea timpurie a faimosului joc online "Smiling Proud Jianghu" de pe Internet a avut o astfel de problemă, iar autorul a analizat cu atenție unele dintre programele pe care le scrisese anterior după ce a citit raportul de vulnerabilități despre acest joc, existând multe astfel de portițe. Chiar ar trebui să ne concentrăm atenția. Acest lucru scoate la iveală și lipsa de experiență în programare și de conștientizare privind securitatea tinerilor programatori, inclusiv a autorului. În același timp, ne amintește și că programatorii ar trebui să țină cont de securitatea programului atunci când îl proiectează și să nu fie neglijent, iar o omisiune aparent mică poate avea consecințe serioase.




Precedent:Securitatea bazelor de date SQL 2005 și integritatea referențială
Următor:2011 MSSQL System Security SA Tutorial privind riscul de securitate a parolelor slabe
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com