Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12385|Atbildi: 0

[Paziņojums] 2011. gada MSSQL paziņojuma paroles validācijas drošības ievainojamības apmācība

[Kopēt saiti]
Publicēts 26.11.2014 15:47:51 | | |
Kā starptautisks standarta datu bāzes vaicājuma paziņojums, SQL priekšraksti ir plaši izmantoti dažādās programmēšanas vidēs. Kā nobriedusi un stabila sistēma lietotāja pieteikšanās un paroles verifikācija ir būtiska. Manā ikdienas programmēšanas darbā es atklāju, ka daudzi programmētāji izmanto SQL paziņojumus, lai pārbaudītu lietotāju paroles, izmantojot šādu paziņojumu:
sql="Izvēlieties * no lietotāja tabulas, kur name='"+name+"' un password='"+password+"'"
Vārds un parole ir lietotāja ievadītie lietotājvārdi un paroles, un iepriekš minētie paziņojumi tiek izpildīti, lai pārbaudītu, vai lietotājs un parole ir likumīgi un derīgi. Tomēr, veicot analīzi, var konstatēt, ka iepriekš minētajos apgalvojumos ir letālas nepilnības. Kad lietotājvārdā ievadām šādu virkni: 111'vai'1=1, pēc tam nejauši ievadiet paroli, mēs to iestatījām uz aaaa. Pēc mainīgā nomaiņas SQL priekšraksts kļūst par šādu virkni:
sql="Izvēlieties * no lietotāja tabulas, kur name='111'vai'1=1' un password='aaaa'
Mēs visi zinām, ka, kad atlases paziņojums vērtē vaicājuma nosacījumus, tas ignorēs šādas un (un) darbības, saskaroties ar (vai) operācijām, un vērtība 1=1 iepriekš minētajā paziņojumā vienmēr ir patiesa, kas nozīmē, ka neatkarīgi no tā, kāda vērtība ir ievadīta parolē, tā var iziet iepriekš minēto paroles pārbaudi! Šīs problēmas risinājums ir ļoti vienkāršs, un ir daudz metožu, visbiežāk izmantotā ir spriest par lietotāja un paroles likumību pirms pārbaudes veikšanas, un īpašas rakstzīmes, piemēram, pēdiņas un vienādības zīmes, nav atļautas.
Iepriekš minētās problēmas, lai gan tās var šķist vienkāršas, pastāv. Piemēram, slavenās tiešsaistes spēles "Smiling Proud Jianghu" agrīnajai versijai internetā bija šāda problēma, un autors arī rūpīgi analizēja dažas programmas, kuras viņš bija rakstījis pirms tam, kad izlasīja ievainojamības ziņojumu par šo spēli, un bija daudz šādu nepilnību. Tam patiešām vajadzētu būt mūsu uzmanībai. Tas arī atklāj jauno programmētāju, tostarp autora, programmēšanas pieredzes un drošības izpratnes trūkumu. Tajā pašā laikā tas arī atgādina, ka programmētājiem, izstrādājot programmu, pilnībā jāapsver programmas drošība, un tiem nevajadzētu būt aplietiem, un šķietami neliels izlaidums var izraisīt nopietnas sekas.




Iepriekšējo:SQL 2005 datu bāzes drošība un atsauces integritāte
Nākamo:2011. gada MSSQL sistēmas drošības SA vājas paroles drošības riska apmācība
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com