Кіріспе

Жабдықтық немесе бағдарламалық қамтамасыз етудің ақаулығы Компьютерлік сақтауды бұзу - тапсырма компьютерлік сақтаудың рұқсат етілмеген аймағына кіруге тырысқанда пайда болатын аппараттық немесе бағдарламалық қамтамасыз етудің ақаулығы.

Сақтау ережелерін бұзу түрлері

Сақтауды бұзу, мысалы, тапсырмаға тиесілі емес сақтауды оқудан, жазудан немесе босатудан тұрады. Сақтауды бұзатын жалпы түрі стек буферінің ашылуы деп аталады, онда бағдарлама өзінің шақыру стегіне белгіленген шектерден асып кетуге тырысады. Бұл сондай-ақ жадты толық емес (немесе мүлдем жоқ) қорғауға ие басқа бір желі "меншігіндегі" жадты өзгертудің әрекетіне де сілтеме жасай алады.

Сақтау ережелерін бұзудан аулақ болу

Сақтау бұзушылықтары CICS сияқты транзакциялық жүйелерде транзакцияға тиесілі емес сақтау орындарына жазу мүмкіндігі бар жағдайларда болуы мүмкін; мұндай бұзушылықтарды сақтауды қорғау және транзакцияны оқшаулау сияқты мүмкіндіктерді іске қосу арқылы азайтуға болады.

Сақтау ережелерін бұзуды анықтау

Сақтау бұзылуларын анықтау қиын болуы мүмкін, өйткені бағдарлама жиі бұзудан кейін біраз уақыт бойы жұмыс істей алады. Мысалы, жадтың босатылған аймағына сілтеме сақталуы және кейіннен қате пайда болуы мүмкін. Нәтижесінде, проблеманы кейіннен емес, бұзушылықтар орын алған кезде анықтау үшін күш-жігер жұмсалады. CICS сияқты жүйелерде сақтау бұзушылықтары кейде "қолы" арқылы анықталады (CICS ядросы арқылы), оларды тексеру арқылы олардың үстінен жабысқанын көруге болады. Қосымша шығындар есебінен сақтау бұзылуын жақсы анықтау үшін баламалы орындалу уақытының кітапханасын пайдалануға болады. Кейбір бағдарламалау тілдері осы жағдайлардың алдын алу үшін бағдарламалық жасақтама шекараларын тексереді. Кейбір бағдарламаларды жөндеу бағдарламалары тестілеу кезінде бұзушылықтарды да анықтайды.

Жалпы себептері

Ажырату кезінде анықтамалық түрлендіруді заңсыз пайдалануға әкелетін бос субскрипт. Шақырылған элементтер мен шақыратын элементтер арасындағы байланыс макетінің сәйкессіздігі. Бұрын босатылған (кейде қайта бөлінген) жадының пайдаланылуы.