Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Čo je pretečeniu vyrovnávacej pamäti String Zaobchádzanie ?

Bezpečnostné diery v softvéri môžu prísť do viac foriem ako programátori môžu predstaviť . Jeden z týchto útokov je pretečeniu vyrovnávacej pamäti , keď útočník poskytuje viac informácií než Program zvládne . Najmä programovanie scenárov , ako je programovanie systému a programovanie low - level C , nárazníky reťazce sú náchylné k vykorisťovaniu . Niektoré techniky manipulácie reťazec môže byť použitá , aby sa zabránilo týmto útokom . Tieto techniky zahŕňajú sledovanie veľkosti reťazca , kontrola bufferu hranice a používania bezpečných funkcií string - manipulácia . String pretečeniu vyrovnávacej pamäti

Keď programátori píšu kód pre spracovanie vstupu textové užívateľa , že vstup sa často pohybuje až do vyrovnávacej pamäte alebo premennej . Buffer " prekročenie " nastáva , keď programátor nevytvára buffer dostatočne veľké , aby zvládnuť vstup užívateľa . Vstup nekončí , keď vyrovnávacej pamäte sa zastaví . Skôr , program uloží text do pamäte priamo po vyrovnávaciu pamäť , potenciálne prepísanie dôležité dáta programu . String pretečeniu vyrovnávacej pamäte najčastejšie dochádza , keď programátori nemajú správne kontrolovať vstup užívateľa .
Kontrola Hranice

Užívateľ vstup môže často presahujú hranice poľa kvôli zlému hranice kontrolu . Najmä v C , kde sú struny reprezentovaný ako pole znakov , vkladanie a manipuláciu reťazcov v týchto poliach môže byť zradné . Je možné prepočítať hodnoty poľa indexu a prepísať umiestnenie v pamäti mimo poľa . Tým , vždy vrátane kódu , ktorý kontroluje hranice poľa , aby sa zabezpečilo , že nebudú prepísané , programátor môže obmedziť reťazec prístup k poľu .
Použitie veľkých vyrovnávacích pamätí

jazykoch vyššej úrovne , ako je C # alebo Java , programátor môže používať špecifické vstupné objekty , ktoré obsahujú veľké vyrovnávacej pamäti . Java BufferedReader je dobrým príkladom . Užívateľ môže vytvoriť tento objekt s veľkým spackať , alebo zostať u svojej veľkej Predvolená veľkosť vyrovnávacej pamäte pre spracovanie vstupu . Objekt potom spracováva textu vo vyrovnávacej pamäti . V spodnej úrovni jazykov , ako je C , bude programátor s najväčšou pravdepodobnosťou používať znakové pole . V takom prípade musí programátor zabezpečiť , aby pole znakov príjmu dát zostáva dostatočne veľký , aby si poradil s akoukoľvek mysliteľnou veľkosť dát .
Použiť bezpečné funkcie

Čo sa týka užívateľského vstupu ide , programovací jazyk C používa rôzne funkcie pre rôzne vstupné operácie . Nie všetky z týchto možností sú bezpečné . Napríklad , dostane funkcia nekontroluje vstup užívateľa vôbec , a umožní niečo odovzdať do programu . Funkcie strcpy nebude vykonávať žiadne medze kontroly . Namiesto toho , ďalšie bezpečnej funkcie by mali byť použité , ako napríklad fgets alebo strncpy funkcií .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené