Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12385|Vastaus: 0

[Viestintä] 2011 MSSQL-lausunnon salasanan validointi Turvallisuushaavoittuvuuden opas

[Kopioi linkki]
Julkaistu 26.11.2014 15.47.51 | | |
Kansainvälisenä standardina tietokantakyselylauseena SQL-lauseita on käytetty laajasti erilaisissa ohjelmointiympäristöissä. Kypsänä ja vakaana järjestelmänä käyttäjän kirjautuminen ja salasanan varmistus ovat välttämättömiä. Päivittäisessä ohjelmointityössäni huomasin, että monet ohjelmoijat käyttävät SQL-lauseita vahvistaakseen käyttäjäsalasanoja tällaisella lauseella:
sql="Valitse * käyttäjätaulukosta, jossa nimi='"+nimi+"' ja password='"+password+"'"
Nimi ja salasana ovat käyttäjän syöttämät käyttäjätunnukset ja salasanat, ja yllä olevat lauseet suoritetaan varmistamaan, ovatko käyttäjä ja salasana päteviä. Analyysin kautta voidaan kuitenkin havaita, että yllä mainituissa väitteissä on kohtalokkaita porsaanreikiä. Kun syötämme seuraavan merkkijonon käyttäjänimeen: 111'or'1=1 ja syötämme salasanan rennosti, asetamme sen aaaa-arvoon. Kun muuttuja on vaihdettu, SQL-lause muuttuu seuraavaksi merkkijonoksi:
sql="Valitse * käyttäjätaulusta, jossa nimi='111'tai'1=1' ja salasana='aaaa'
Me kaikki tiedämme, että kun select-lause arvioi kyselyehdot, se jättää seuraavat ja (ja) operaatiot huomiotta kohdatessaan tai (tai) operaatioita, ja yllä olevan lauseen arvo 1=1 on aina tosi, mikä tarkoittaa, että riippumatta siitä, mitä arvoa salasanaan syötetään, se voi läpäistä yllä olevan salasanan varmennuksen! Ratkaisu tähän ongelmaan on hyvin yksinkertainen, ja menetelmiä on monia; yleisin on arvioida käyttäjän ja syötetyn salasanan laillisuus ennen varmistusta, eikä erityismerkkejä kuten yksittäisiä lainausmerkkejä ja yhtäsuuria merkkejä ole sallittuja.
Edellä mainitut ongelmat, vaikka ne saattavat vaikuttaa yksinkertaisilta, ovat olemassa. Esimerkiksi kuuluisan verkkopelin "Smiling Proud Jianghu" varhaisessa versiossa internetissä oli tällainen ongelma, ja kirjoittaja analysoi huolellisesti joitakin aiemmin kirjoittamiaan ohjelmia luettuaan haavoittuvuusraportin tästä pelistä, ja tällaisia porsaanreikiä oli monia. Tämän pitäisi todella kiinnittää huomiomme. Tämä paljastaa myös nuorten ohjelmoijien, mukaan lukien kirjoittajan, ohjelmointikokemuksen ja turvallisuustietoisuuden puutteen. Samaan aikaan se muistuttaa meitä siitä, että ohjelmoijien tulisi ottaa ohjelman turvallisuus täysin huomioon ohjelmaa suunnitellessaan, eikä heidän tulisi olla huolimattomia, ja näennäisesti pieni puute voi aiheuttaa vakavia seurauksia.




Edellinen:SQL 2005 -tietokannan turvallisuus ja viite-eheys
Seuraava:2011 MSSQL System Security SA Weak Password Security Risk Tutorial
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com