堆棧的概念: 堆棧是一種人為設(shè)置的計(jì)算機(jī)軟件模塊裝置,它能夠向里面壓 入數(shù)據(jù),也能彈出數(shù)據(jù),但必須遵循后進(jìn)先出原則。
舉例1:家里吃飯的碗,通常在洗干凈后一個(gè)一個(gè)地落在一起 存放,在使用時(shí),若一個(gè)一個(gè)地拿,一定最先拿走最上面的那只 碗,而最后拿出最下面的那只碗。
舉例2:在建筑工地上,使用的磚塊從底往上一層一層地碼放, 在使用時(shí),將從最上面一層一層地拿取。 后進(jìn)先出(Last In First Out),簡(jiǎn)稱為L(zhǎng)IFO線性表。
舉例3:手槍、沖鋒槍、機(jī)關(guān)槍的子彈匣的子彈裝填,先裝進(jìn) 的子彈后射出。 特征:后進(jìn)先出?;蛘哒f(shuō),先產(chǎn)生的數(shù)據(jù)后被取用。
網(wǎng)頁(yè)堆棧溢出通常是:網(wǎng)頁(yè)木馬通過(guò)向程序的緩沖區(qū)(堆、棧等)中寫入超出其長(zhǎng)度的數(shù)據(jù),造成緩沖區(qū)溢出。
緩沖區(qū)的溢出可以破壞程序執(zhí)行流程,使程序轉(zhuǎn)向執(zhí)行其它指令。利用緩沖區(qū)溢出可以達(dá)到攻擊主機(jī)的目的。
緩沖區(qū)溢出是指:當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時(shí)超過(guò)了緩沖區(qū)本身的容量溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上,理想的情況是程序檢查數(shù)據(jù)長(zhǎng)度并不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符,但是絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的儲(chǔ)存空間相匹配,這就為緩沖區(qū)溢出埋下隱患。 操作系統(tǒng)所使用的緩沖區(qū) 又被稱為“堆棧”。
在各個(gè)操作進(jìn)程之間,指令會(huì)被臨時(shí)儲(chǔ)存在“堆?!碑?dāng)中“堆?!币矔?huì)出現(xiàn)緩沖區(qū)溢出。 目前有四種基本的方法保護(hù)緩沖區(qū)免受緩沖區(qū)溢出的攻擊和影響。
分別是: 編寫正確的代碼,非執(zhí)行的緩沖區(qū),數(shù)組邊界檢查,程序指針完整性檢查。 試試這個(gè) 工具一》internet選項(xiàng)一》高級(jí) 禁用腳本調(diào)試 親,如果我的回答對(duì)您有幫助,請(qǐng)賜個(gè)好評(píng)吧。
謝謝。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:2.730秒