Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12385|Válasz: 0

[Kommunikáció] 2011 MSSQL Statement Jelszó Validáció Biztonsági Sérülékenység Tutorial

[Linket másol]
Közzétéve 2014. 11. 26. 15:47:51 | | |
Nemzetközi szabványú adatbázis-lekérdezési állításként az SQL utasításokat széles körben alkalmazták különböző programozási környezetekben. Mint egy érett és stabil rendszer, elengedhetetlen a felhasználói bejelentkezés és jelszó-ellenőrzés. Napi programozási munkám során azt tapasztaltam, hogy sok programozó SQL utasításokat használ a felhasználói jelszavak ellenőrzésére egy ilyen állítással:
sql="Válassz * a felhasználói táblából, ahol a név='"+név+"' és jelszó='"+jelszó+"'"
A név és jelszó a felhasználó által megadott felhasználónevek és jelszavak, és a fenti kijelentéseket azért hajtják végre, hogy ellenőrizzék, a felhasználó és jelszó hiteles-e és érvényes. Elemzés során azonban megállapítható, hogy végzetes kiskapuk vannak a fent említett állításokban. Amikor a következő stringet írjuk be a felhasználónévbe: 111'or'1=1, majd lazán beírjuk a jelszót, beállítjuk aaaa-ra. A változó cseréje után az SQL utasítás a következő string lesz:
sql="Válassz * a felhasználói táblából, ahol a név='111'or'1=1' és jelszó='aaaa'
Mindannyian tudjuk, hogy amikor a select utasítás megítéli a lekérdezési feltételeket, figyelmen kívül hagyja a következő és (és) műveleteket, amikor vagy (vagy) műveleteket talál, és a fenti állításban az 1=1 érték mindig igaz, ami azt jelenti, hogy bármilyen értéket is írnak be a jelszóba, átlépheti a fenti jelszó-ellenőrzést! A probléma megoldása nagyon egyszerű, és számos módszer létezik; a leggyakrabban alkalmazott, hogy a felhasználó által megadott jelszó és a felhasználó által megadott jelszó hitelességét ítéljük meg az ellenőrzés előtt, és speciális karakterek, mint az idézőjelek és egyenlőségjelek nem engedélyezettek.
A fent említett problémák, bár egyszerűnek tűnhetnek, léteznek. Például az interneten elérhető híres online játék, a "Smiling Proud Jianghu" korai verziója ilyen problémával küzdött, és a szerző alaposan elemezte azokat a programokat, amelyeket korábban írt, miután elolvasta a sebezhetőségi jelentést erről a játékról, és sok ilyen kiskapu volt. Ez tényleg a mi figyelmünkre kellene odafigyelni. Ez feltárja a fiatal programozók, köztük a szerző esetében is, a programozási tapasztalat és a biztonsági ismeretek hiányát. Ugyanakkor emlékeztet arra is, hogy a programozóknak teljes mértékben figyelembe kell venniük a program biztonságát a program tervezésekor, és nem szabad hanyagnak lenniük, és egy látszólag apró hiányosság komoly következményekkel járhat.




Előző:SQL 2005 adatbázis-biztonság és referenciális integritás
Következő:2011 MSSQL System Security SA gyenge jelszó biztonsági kockázat oktató
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com