- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 320字
- 2020-10-30 17:56:47
2.6.9 不可執行棧
不可執行棧是一種針對緩沖區溢出的運行時解決方案,設計它的目的在于防止在棧段(stack segment)內運行可執行代碼。很多操作系統都可以被配置為使用不可執行棧。
不可執行棧常常被描繪成防范緩沖區溢出漏洞的“萬能藥”,然而,不可執行棧只能防止在棧內存中的惡意代碼執行。它們并不能阻止堆或數據段的緩沖區溢出。它們阻止不了攻擊者利用緩沖區溢出來修改返回地址、變量、對象指針或函數指針。它們對在堆或數據段內的弧注入或可執行代碼注入也無能為力。禁止攻擊者在棧中執行代碼能夠阻止對某些漏洞的利用,但對攻擊者而言這種方式往往形同虛設。
不可執行棧在不同的實現機制下對性能有著不同的影響。它還有可能使得一些依賴于在棧段內執行代碼的程序(包括Linux signal delivery和GCC trampolines等)無法工作。
推薦閱讀
- Web前端開發技術:HTML、CSS、JavaScript(第3版)
- C++程序設計(第3版)
- Mastering Articulate Storyline
- Java程序設計與計算思維
- ASP.NET動態網頁設計教程(第三版)
- JavaScript前端開發與實例教程(微課視頻版)
- Silverlight魔幻銀燈
- HTML5從入門到精通 (第2版)
- Getting Started with Hazelcast(Second Edition)
- Windows內核編程
- LabVIEW虛擬儀器程序設計從入門到精通(第二版)
- Learning Node.js for .NET Developers
- Scala編程(第5版)
- Learning VMware vSphere
- Qt 5.12實戰