Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 12385|Svar: 0

[Kommunikation] 2011 MSSQL Statement Password Validation Security Vulnerability Tutorial

[Kopiera länk]
Publicerad på 2014-11-26 15:47:51 | | |
Som en internationell standard för databasfrågesatser har SQL-satser använts i stor utsträckning i olika programmeringsmiljöer. Som ett moget och stabilt system är användarinloggning och lösenordsverifiering avgörande. I mitt dagliga programmeringsarbete upptäckte jag att många programmerare använder SQL-satser för att verifiera användarlösenord genom ett uttalande som detta:
sql="Välj * från användartabellen där name='"+name+"' och password='"+password+"'"
Namnet och lösenordet är användarnamn och lösenord som användaren anger i, och ovanstående uttalanden utförs för att verifiera om användaren och lösenordet är legitima och giltiga. Men genom analys kan man upptäcka att det finns ödesdigra kryphål i ovanstående påståenden. När vi anger följande sträng i användarnamnet: 111'or'1=1, och sedan anger lösenordet nonchalant, sätter vi det till aaaa. Efter att variabeln bytts ut blir SQL-satsen följande sträng:
sql="Välj * från användartabellen där name='111'or'1=1' och password='AAAAA'
Vi vet alla att när select-satsen bedömer frågevillkoren, kommer den att ignorera följande och (och)-operationer när den möter eller (eller)-operationer, och värdet 1=1 i ovanstående sats är alltid sant, vilket betyder att oavsett vilket värde som anges i lösenordet kan det klara ovanstående lösenordsverifiering! Lösningen på detta problem är mycket enkel, och det finns många metoder, den vanligaste är att bedöma användarens och lösenordets legitimitet innan verifieringen utförs, och specialtecken som enkla citattecken och likhetstecken är inte tillåtna.
Ovanstående problem, även om de kan verka enkla, existerar. Till exempel hade den tidiga versionen av det berömda onlinespelet "Smiling Proud Jianghu" på internet ett sådant problem, och författaren analyserade också noggrant några av de program han skrivit tidigare efter att ha läst sårbarhetsrapporten om detta spel, och det fanns många sådana kryphål. Det här borde verkligen vara vår uppmärksamhet. Detta avslöjar också bristen på programmeringserfarenhet och säkerhetsmedvetenhet hos unga programmerare, inklusive författaren. Samtidigt påminner det oss också om att programmerare bör ta hänsyn till programmets säkerhet när de utformar det, och inte vara slarviga, och att en till synes liten utelämnande kan orsaka allvarliga konsekvenser.




Föregående:SQL 2005 databassäkerhet och referensintegritet
Nästa:2011 MSSQL System Security SA Weak Password Security Risk Tutorial
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com