成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

美團二面:為什么mmap共享內存比malloc危險?

開發 前端
雖然兩者都能提供內存分配的能力,但從系統風險的角度來看,mmap?共享內存比malloc更加危險,稍有不慎就可能引發嚴重的安全漏洞或穩定性問題。

今天來聊個面試題,為什么mmap共享內存比malloc更危險,這是一個比較有區分度的題目。

在系統編程中,內存管理是程序員必須面對的核心問題之一。

C/C++開發者常用的內存分配方式包括malloc(堆內存)和mmap(共享內存/文件映射)。

圖片圖片

雖然兩者都能提供內存分配的能力,但從系統風險的角度來看,mmap共享內存比malloc更加危險,稍有不慎就可能引發嚴重的安全漏洞或穩定性問題。

mmap共享內存可能導致其它進程崩潰

mmap可以讓多個進程直接讀寫同一塊物理內存,這意味著一個進程的錯誤操作可能直接影響其他進程的數據,甚至導致崩潰。比如進程A的越界寫入可能導致進程B崩潰或讀取到損壞的數據。

一句話,共享內存破壞了進程間的內存隔離。

圖片圖片

而如果使用malloc,這種越界寫入最多只會影響當前進程,不會跨進程傳播錯誤。因為malloc分配的內存僅在當前進程內有效,天然具備隔離性,其他進程無法直接訪問。

mmap的權限風險

mmap可以設置內存的讀寫/執行權限(如PROT_EXEC),如果錯誤配置可能被黑客利用進行代碼注入攻擊(如緩沖區溢出后執行惡意代碼)。

假設有一個網絡服務程序,使用 mmap 分配了一塊內存用于處理客戶端請求,并錯誤地賦予了可執行權限(PROT_EXEC):

void *mem_start = mmap(NULL, 4096, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);

同時,程序將用戶輸入數據(如網絡數據包)復制到該內存區域,但未檢查輸入長度。

這樣攻擊者就可以構造一個超長數據包,其中包含惡意機器碼(如 shellcode)和精心設計的溢出數據,溢出數據覆蓋了程序的返回地址或函數指針,使其指向 mem_start 的起始地址。

當程序執行到該返回地址時,會跳轉到 mem_start 區域。

圖片圖片

由于 mem_start 被錯誤配置為可執行(PROT_EXEC),因此操作系統不會阻止該區域的代碼執行。

攻擊者的 shellcode 被成功執行,可能實現提權、反彈 Shell 等惡意操作。

而使用malloc分配的堆內存則無此問題。

多線程與同步風險

使用mmap共享內存時,多進程或線程需通過信號量、鎖等機制同步訪問,否則導致數據競爭(Data Race)或臟讀,這顯然會影響所有共享這塊內存的進程。

圖片圖片

malloc本身是線程安全的(通過全局鎖或線程本地緩存),但程序員需自行管理分配的內存區域的并發訪問。若未加鎖,仍可能導致競爭條件,但與mmap的共享內存相比,影響范圍限于當前進程內。

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2021-03-17 15:54:32

IO零拷貝方式

2021-04-25 09:58:48

mmapJava面試

2024-04-24 09:02:58

線程池面試鎖升級

2022-10-18 08:38:16

內存泄漏線程

2024-04-15 08:37:35

2022-06-15 09:02:32

JVM線程openJDK

2023-04-21 13:57:38

Redis阻塞半自動

2023-04-03 07:57:00

2022-09-08 13:56:49

MySQL事務記錄鎖

2023-04-03 10:24:00

spring事務場景

2020-03-23 12:58:34

美團公有云互聯網

2021-11-30 07:51:29

共享內存進程

2020-10-09 07:13:11

Linux系統編程mmap

2021-03-01 11:53:15

面試偽共享CPU

2020-12-30 10:04:46

userMapper接口

2024-10-31 08:50:14

2023-02-27 09:03:23

JavaCAS

2011-05-24 16:39:09

Cfree()

2022-09-12 15:55:57

TCP函數程序

2022-08-27 13:50:44

TCP服務端函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线播放中文 | 可以在线观看av的网站 | 久久免费精品 | 亚洲一区视频 | 国产一区二区毛片 | 免费观看一级黄色录像 | 91在线精品一区二区 | 伊人网99 | 免费观看一级毛片 | 国产精品久久久久久久久久久久冷 | 在线免费亚洲视频 | 精品欧美一区二区三区精品久久 | 狠狠干天天干 | 欧美精品一区二区免费 | 狠狠入ady亚洲精品经典电影 | 久久精品亚洲国产奇米99 | 国产视频久久 | 夫妻午夜影院 | 97碰碰碰 | 麻豆av一区二区三区久久 | 免费成人在线网站 | a级在线免费 | 国产精品小视频在线观看 | 中文字幕一区在线观看视频 | 伊人av在线播放 | 亚洲视频在线观看免费 | 色888www视频在线观看 | 欧美日韩视频一区二区 | 国产精品无码久久久久 | 日韩欧美国产综合 | 精产国产伦理一二三区 | 欧州一区二区 | 99免费在线视频 | 日韩精品久久久 | 国产精品美女久久久久久不卡 | 国产精品福利久久久 | 综合另类 | 99re国产 | 中文字幕日韩一区 | 国产一区视频在线 | 久久91视频|