Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12385|Odpoveď: 0

[Komunikácia] 2011 MSSQL Statement Validácia hesla Bezpečnostný tutoriál

[Kopírovať odkaz]
Zverejnené 26. 11. 2014 15:47:51 | | |
Ako medzinárodný štandardný dotaz na databázu sa SQL príkazy široko používajú v rôznych programovacích prostrediach. Ako vyspelý a stabilný systém je nevyhnutné overiť prihlásenie používateľa a heslo. Vo svojej každodennej programátorskej práci som zistil, že mnohí programátori používajú SQL príkazy na overenie používateľských hesiel prostredníctvom takéhoto príkazu:
sql="Vyberte * z používateľskej tabuľky, kde meno='"+meno+"' a heslo='"+heslo+"'"
Meno a heslo sú používateľské mená a heslá zadané používateľom a vyššie uvedené príkazy sa vykonávajú na overenie, či sú používateľ a heslo legitímne a platné. Avšak analýzou možno zistiť, že v uvedených tvrdeniach existujú fatálne medzery. Keď zadáme nasledujúci reťazec do používateľského mena: 111'or'1=1 a potom neformálne zadáme heslo, nastavíme ho na aaaa. Po nahradení premennej sa SQL príkaz stáva nasledujúcim reťazcom:
sql="Vyberte * z používateľskej tabuľky, kde meno='111'or'1=1' a heslo='aaaa'
Všetci vieme, že keď príkaz select hodnotí podmienky dotazu, ignoruje nasledujúce operácie a (a) pri narazení na operácie or (alebo), a hodnota 1=1 v uvedenom príkaze je vždy pravdivá, čo znamená, že bez ohľadu na to, akú hodnotu je v hesle zadané, môže prejsť overením hesla! Riešenie tohto problému je veľmi jednoduché a existuje mnoho metód, najčastejšie používaná je posúdenie legitímnosti používateľa a hesla zadaného používateľom pred overením, pričom špeciálne znaky ako jednoduché úvodzovky a rovnaké nie sú povolené.
Vyššie uvedené problémy, hoci sa môžu zdať jednoduché, existujú. Napríklad skorá verzia slávnej online hry "Smiling Proud Jianghu" na internete mala takýto problém a autor tiež dôkladne analyzoval niektoré programy, ktoré predtým napísal, po prečítaní správy o zraniteľnosti tejto hry, a takýchto dier bolo mnoho. Toto by naozaj mala byť naša pozornosť. To tiež odhaľuje nedostatok programátorských skúseností a bezpečnostného povedomia mladých programátorov, vrátane autora. Zároveň nám to pripomína, že programátori by mali pri jeho navrhovaní dôkladne zvážiť bezpečnosť programu a nemali by byť nedbalí, pretože aj zdanlivo malé opomenutie môže mať vážne následky.




Predchádzajúci:SQL 2005 databázová bezpečnosť a referenčná integrita
Budúci:2011 MSSQL System Security SA Návod na riziká bezpečnosti slabých hesiel
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com